summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/luatex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-08-02 21:06:17 +0000
committerKarl Berry <karl@freefriends.org>2020-08-02 21:06:17 +0000
commit7bed06e355778cdcfb932a75896b95e7f23e4b75 (patch)
treef45a1f7186cd1fa709c1b8e63e4133725e82af3b /Master/texmf-dist/tex/luatex
parent4cdd4a7d96cd11bcba0ef269aeb917290eebce38 (diff)
luatexja (2aug20)
git-svn-id: svn://tug.org/texlive/trunk@56029 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/luatex')
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-preset.sty21
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/jfm-kaiming.lua4
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltj-adjust.lua149
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltj-base.lua98
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltj-base.sty147
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltj-charrange.lua26
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltj-compat.lua87
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltj-direction.lua1002
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltj-inputbuf.lua33
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltj-ivd_aj1.lua25366
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltj-jfmglue.lua822
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua106
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltj-kinsoku.lua1035
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltj-latex.sty1
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltj-lineskip.lua115
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltj-lotf_aux.lua7
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltj-math.lua127
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltj-otf.lua106
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltj-pretreat.lua116
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltj-rmlgbm.lua203
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltj-ruby.lua312
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltj-setwidth.lua130
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltj-stack.lua44
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltj-unicode-ccfix.lua74
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltjarticle.cls13
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltjbk10.clo2
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltjbk11.clo2
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltjbk12.clo2
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltjbook.cls13
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltjreport.cls13
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltjsarticle.cls2
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltjsbook.cls2
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltjsize10.clo2
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltjsize11.clo2
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltjsize12.clo2
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltjskiyou.cls2
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltjspf.cls2
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltjsreport.cls2
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltjtarticle.cls24
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltjtbk10.clo2
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltjtbk11.clo2
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltjtbk12.clo2
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltjtbook.cls24
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltjtreport.cls24
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltjtsize10.clo2
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltjtsize11.clo2
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltjtsize12.clo2
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/luatexja-core.sty8
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/luatexja.lua437
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/luatexja.sty4
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/patches/lltjdefs.sty16
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/patches/lltjfont.sty161
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-atbegshi.sty79
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-everyshi.sty21
54 files changed, 4495 insertions, 26507 deletions
diff --git a/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-preset.sty b/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-preset.sty
index 58a585768a3..279ebb09b70 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-preset.sty
+++ b/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-preset.sty
@@ -1,5 +1,5 @@
% luatexja-preset.sty
-\ProvidesPackage{luatexja-preset}[2020-05-15 Japanese font presets]
+\ProvidesPackage{luatexja-preset}[2020-06-14 Japanese font presets]
\RequirePackage{expl3,l3keys2e}
\RequirePackage{luatexja}
@@ -76,6 +76,7 @@
\__ltjpreset_declare_bool_option:nn { bold }{ nobold }
\__ltjpreset_declare_bool_option:nn { expert }{ noexpert }
\__ltjpreset_declare_bool_option:nn { deluxe }{ nodeluxe }
+\__ltjpreset_declare_bool_option:nn { nocheck }{ check }
% JFM
\tl_new:N \__ltjpreset_use_jfm_yoko_tl % 使用する JFM(横)
@@ -464,14 +465,16 @@
\group_begin:
\suppressfontnotfounderror=1
\cs_if_exist:cTF { __ltjpreset_font_#1_#2: } {
- \__ltjpreset_wrap_fontname:e { \cs:w __ltjpreset_font_#1_#2: \cs_end: }
- \font \g__ltjpreset_font_test: = \l__ltjpreset_font_name:\relax
- \ifx \g__ltjpreset_font_test: \nullfont
- \msg_warning:nnxxxx { luatexja-preset }{ no-font }
- { \cs:w __ltjpreset_font_#1_#2: \cs_end: }{ #1/#2 }
- { \cs:w __ltjpreset_font_#3_#4: \cs_end: }{ #3/#4 }
- \cs_gset_eq:cc { __ltjpreset_font_#1_#2: } { __ltjpreset_font_#3_#4: }
- \fi
+ \bool_if:NF \g__ltjpreset_nocheck_bool {
+ \__ltjpreset_wrap_fontname:e { \cs:w __ltjpreset_font_#1_#2: \cs_end: }
+ \font \g__ltjpreset_font_test: = \l__ltjpreset_font_name:\relax
+ \ifx \g__ltjpreset_font_test: \nullfont
+ \msg_warning:nnxxxx { luatexja-preset }{ no-font }
+ { \cs:w __ltjpreset_font_#1_#2: \cs_end: }{ #1/#2 }
+ { \cs:w __ltjpreset_font_#3_#4: \cs_end: }{ #3/#4 }
+ \cs_gset_eq:cc { __ltjpreset_font_#1_#2: } { __ltjpreset_font_#3_#4: }
+ \fi
+ }
} { \cs_gset_eq:cc { __ltjpreset_font_#1_#2: } { __ltjpreset_font_#3_#4: } }
\group_end:
}
diff --git a/Master/texmf-dist/tex/luatex/luatexja/jfm-kaiming.lua b/Master/texmf-dist/tex/luatex/luatexja/jfm-kaiming.lua
index cb166ec436f..63ac222311d 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/jfm-kaiming.lua
+++ b/Master/texmf-dist/tex/luatex/luatexja/jfm-kaiming.lua
@@ -6,8 +6,8 @@ luatexja.jfont.define_jfm {
align = 'left', left = 0.0, down = 0.0,
width = 1.0, height = 0.88, depth = 0.12, italic=0.0,
glue = {
- --[1] = { 0.5 , 0.0, 0.5 },
- [3] = { 0.125, 0.0, 0.125 }
+ [1] = { 0, 0.5, 0 },
+ [3] = { 0, 0.25, 0 }
}
},
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-adjust.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-adjust.lua
index d6025b1f1d8..c7d145d2f67 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltj-adjust.lua
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-adjust.lua
@@ -1,12 +1,12 @@
--
-- ltj-adjust.lua
--
-luatexja.load_module('base'); local ltjb = luatexja.base
-luatexja.load_module('jfont'); local ltjf = luatexja.jfont
-luatexja.load_module('jfmglue'); local ltjj = luatexja.jfmglue
-luatexja.load_module('stack'); local ltjs = luatexja.stack
-luatexja.load_module('direction'); local ltjd = luatexja.direction
-luatexja.load_module('lineskip'); local ltjl = luatexja.lineskip
+luatexja.load_module 'base'; local ltjb = luatexja.base
+luatexja.load_module 'jfont'; local ltjf = luatexja.jfont
+luatexja.load_module 'jfmglue'; local ltjj = luatexja.jfmglue
+luatexja.load_module 'stack'; local ltjs = luatexja.stack
+luatexja.load_module 'direction'; local ltjd = luatexja.direction
+luatexja.load_module 'lineskip'; local ltjl = luatexja.lineskip
luatexja.adjust = luatexja.adjust or {}
local to_node = node.direct.tonode
@@ -30,12 +30,12 @@ local has_attr = node.direct.has_attribute
local set_attr = node.direct.set_attribute
local insert_after = node.direct.insert_after
-local id_glyph = node.id('glyph')
-local id_kern = node.id('kern')
-local id_hlist = node.id('hlist')
-local id_glue = node.id('glue')
-local id_whatsit = node.id('whatsit')
-local id_penalty = node.id('penalty')
+local id_glyph = node.id 'glyph'
+local id_kern = node.id 'kern'
+local id_hlist = node.id 'hlist'
+local id_glue = node.id 'glue'
+local id_whatsit = node.id 'whatsit'
+local id_penalty = node.id 'penalty'
local attr_icflag = luatexbase.attributes['ltj@icflag']
local attr_jchar_class = luatexbase.attributes['ltj@charclass']
local lang_ja = luatexja.lang_ja
@@ -70,9 +70,9 @@ do
local function make_priority_table(glue_sign)
for i,_ in pairs(tmp) do tmp[i]=nil end
if glue_sign==2 then -- shrink
- for i=0,63 do tmp[#tmp+1] = { (i%8)-4, FROM_JFM+i } end
+ for i=0,63 do tmp[#tmp+1] = { (i%8)-4, FROM_JFM+i } end
else -- stretch
- for i=0,63 do tmp[#tmp+1] = { math.floor(i/8)-4, FROM_JFM+i } end
+ for i=0,63 do tmp[#tmp+1] = { math.floor(i/8)-4, FROM_JFM+i } end
end
local pt = priority_table[glue_sign]
tmp[#tmp+1] = { pt[2]/10, XKANJI_SKIP }
@@ -83,8 +83,8 @@ do
table.sort(tmp, cmp)
local a, m, n = at2pr[glue_sign], 10000000, 0
for i=1,#tmp do
- if tmp[i][1]<m then n,m = n+1,tmp[i][1] end
- a[tmp[i][2]] = n
+ if tmp[i][1]<m then n,m = n+1,tmp[i][1] end
+ a[tmp[i][2]] = n
end
local o = a[-1]
priority_num[glue_sign] = n
@@ -111,14 +111,14 @@ function get_total_stretched(p)
for q in node_traverse_id(id_glue, ph) do
local a = getfield(q, 'stretch_order')
if a==0 then
- local b = at2pr_st[get_attr_icflag(q)];
- total_st[b] = total_st[b]+getfield(q, 'stretch')
+ local b = at2pr_st[get_attr_icflag(q)];
+ total_st[b] = total_st[b]+getfield(q, 'stretch')
end
total_st[a*65536] = total_st[a]+getfield(q, 'stretch')
local a = getfield(q, 'shrink_order')
if a==0 then
- local b = at2pr_sh[get_attr_icflag(q)];
- total_sh[b] = total_sh[b]+getfield(q, 'shrink')
+ local b = at2pr_sh[get_attr_icflag(q)];
+ total_sh[b] = total_sh[b]+getfield(q, 'shrink')
end
total_sh[a*65536] = total_sh[a]+getfield(q, 'shrink')
end
@@ -171,16 +171,16 @@ local function aw_step1(p, total)
for i, v in ipairs(eadt) do
local t = total - v
if t>0 then
- eadt_ratio[i] = {i, t/total_st[65536*total_st.order], t, v}
+ eadt_ratio[i] = {i, t/total_st[65536*total_st.order], t, v}
else
- eadt_ratio[i] = {i, t/total_sh[65536*total_sh.order], t, v}
+ eadt_ratio[i] = {i, t/total_sh[65536*total_sh.order], t, v}
end
end
table.sort(eadt_ratio,
function (a,b)
for i=2,4 do
- local at, bt = abs(a[i]), abs(b[i])
- if at~=bt then return at<bt end
+ local at, bt = abs(a[i]), abs(b[i])
+ if at~=bt then return at<bt end
end
return a[4]<b[4]
end)
@@ -219,14 +219,14 @@ local function aw_step1_last(p, total)
if total_st.order ~= getfield(pf, 'stretch_order') then return total, false end
if total_st[total_st.order*65536] ~= getfield(pf, 'stretch') then return total, false end
for i=total_st.order-1, 1, -1 do
- if total_st[i*65536] ~= 0 then return total, false end
+ if total_st[i*65536] ~= 0 then return total, false end
end
end
if total<0 and total_sh.order>0 then
if total_sh.order ~= getfield(pf, 'shrink_order') then return total, false end
if total_sh[total_sh.order*65536] ~= getfield(pf, 'shrink') then return total, false end
for i=total_sh.order-1, 1, -1 do
- if total_sh[i*65536] ~= 0 then return total, false end
+ if total_sh[i*65536] ~= 0 then return total, false end
end
end
local eadt = ltjf_font_metric_table[getfont(xc)]
@@ -258,16 +258,16 @@ local function aw_step1_last(p, total)
for i, v in ipairs(eadt) do
local t = total - v
if t>0 then
- eadt_ratio[i] = {i, t/total_st[65536*total_st.order], t, v}
+ eadt_ratio[i] = {i, t/total_st[65536*total_st.order], t, v}
else
- eadt_ratio[i] = {i, t/total_sh[65536*total_sh.order], t, v}
+ eadt_ratio[i] = {i, t/total_sh[65536*total_sh.order], t, v}
end
end
table.sort(eadt_ratio,
function (a,b)
for i=2,4 do
- local at, bt = abs(a[i]), abs(b[i])
- if at~=bt then return at<bt end
+ local at, bt = abs(a[i]), abs(b[i])
+ if at~=bt then return at<bt end
end
return a[4]<b[4]
end)
@@ -303,8 +303,7 @@ local function clear_stretch(p, ind, ap, name)
for q in node_traverse_id(id_glue, getlist(p)) do
local f = ap[get_attr_icflag(q)]
if f == ind then
- setfield(q, name..'_order', 0)
- setfield(q, name, 0)
+ setfield(q, name..'_order', 0); setfield(q, name, 0)
end
end
end
@@ -313,7 +312,7 @@ local function set_stretch(p, after, before, ind, ap, name)
if before > 0 then
local ratio = after/before
for q in node_traverse_id(id_glue, getlist(p)) do
- local f = ap[get_attr_icflag(q)]
+ local f = ap[get_attr_icflag(q)]
if (f==ind) and getfield(q, name..'_order')==0 then
setfield(q, name, getfield(q, name)*ratio)
end
@@ -333,7 +332,7 @@ function aw_step2(p, total, added_flag)
total = abs(total)
for i = 1, pnum do
if total <= res[i] then
- local a = at2pr[id]
+ local a = at2pr[id]
for j = i+1,pnum do
clear_stretch(p, j, a, name)
end
@@ -353,32 +352,32 @@ do
insert_lineend_kern = function (head, nq, np, Bp)
if nq.met then
local eadt = nq.met.char_type[nq.class].end_adjust
- if not eadt then return end
- if eadt[1]~=0 then
- local x = node_new(id_kern, 1)
- setfield(x, 'kern', eadt[1]); set_attr(x, attr_icflag, LINEEND)
- insert_before(head, np.first, x)
- end
- local eadt_num = #eadt
- for i=2,eadt_num do
- local x = node_new(id_penalty)
- setfield(x, 'penalty', 0); set_attr(x, attr_icflag, KINSOKU)
- insert_before(head, np.first, x); Bp[#Bp+1] = x
- local x = node_new(id_kern, 1)
- setfield(x, 'kern', eadt[i]-eadt[i-1]); set_attr(x, attr_icflag, LINEEND)
- insert_before(head, np.first, x)
- end
+ if not eadt then return end
+ if eadt[1]~=0 then
+ local x = node_new(id_kern, 1)
+ setfield(x, 'kern', eadt[1]); set_attr(x, attr_icflag, LINEEND)
+ insert_before(head, np.first, x)
+ end
+ local eadt_num = #eadt
+ for i=2,eadt_num do
+ local x = node_new(id_penalty)
+ setfield(x, 'penalty', 0); set_attr(x, attr_icflag, KINSOKU)
+ insert_before(head, np.first, x); Bp[#Bp+1] = x
+ local x = node_new(id_kern, 1)
+ setfield(x, 'kern', eadt[i]-eadt[i-1]); set_attr(x, attr_icflag, LINEEND)
+ insert_before(head, np.first, x)
+ end
if eadt_num>1 or eadt[1]~=0 then
- local x = node_new(id_penalty)
- setfield(x, 'penalty', 0); set_attr(x, attr_icflag, KINSOKU)
- insert_before(head, np.first, x); Bp[#Bp+1] = x
- local x = node_new(id_kern, 1)
- setfield(x, 'kern', -eadt[eadt_num]); set_attr(x, attr_icflag, LINEEND)
- insert_before(head, np.first, x)
- local x = node_new(id_penalty)
- setfield(x, 'penalty', 10000); set_attr(x, attr_icflag, KINSOKU)
- insert_before(head, np.first, x); Bp[#Bp+1] = x
- end
+ local x = node_new(id_penalty)
+ setfield(x, 'penalty', 0); set_attr(x, attr_icflag, KINSOKU)
+ insert_before(head, np.first, x); Bp[#Bp+1] = x
+ local x = node_new(id_kern, 1)
+ setfield(x, 'kern', -eadt[eadt_num]); set_attr(x, attr_icflag, LINEEND)
+ insert_before(head, np.first, x)
+ local x = node_new(id_penalty)
+ setfield(x, 'penalty', 10000); set_attr(x, attr_icflag, KINSOKU)
+ insert_before(head, np.first, x); Bp[#Bp+1] = x
+ end
end
end
end
@@ -392,9 +391,9 @@ do
if not head then return head end
local last_p
for p in node_traverse_id(id_hlist, to_direct(head)) do
- if last_p then
- myaw_step2(last_p, myaw_step1(last_p, get_total_stretched(last_p)))
- end
+ if last_p then
+ myaw_step2(last_p, myaw_step1(last_p, get_total_stretched(last_p)))
+ end
last_p = p
end
if last_p then
@@ -405,18 +404,18 @@ do
local is_reg = false
local function enable_cb(status_le, status_pr, status_lp, status_ls)
if (status_le>0 or status_pr>0) and (not is_reg) then
- ltjb.add_to_callback('post_linebreak_filter',
+ ltjb.add_to_callback('post_linebreak_filter',
adjust_width, 'Adjust width',
- luatexbase.priority_in_callback('post_linebreak_filter', 'ltj.lineskip')-1)
- is_reg = true
+ luatexbase.priority_in_callback('post_linebreak_filter', 'ltj.lineskip')-1)
+ is_reg = true
elseif is_reg and (status_le==0 and status_pr==0) then
- luatexbase.remove_from_callback('post_linebreak_filter', 'Adjust width')
- is_reg = false
+ luatexbase.remove_from_callback('post_linebreak_filter', 'Adjust width')
+ is_reg = false
end
if status_le==2 then
- if not luatexbase.in_callback('luatexja.adjust_jfmglue', 'luatexja.adjust') then
- ltjb.add_to_callback('luatexja.adjust_jfmglue', insert_lineend_kern, 'luatexja.adjust')
- end
+ if not luatexbase.in_callback('luatexja.adjust_jfmglue', 'luatexja.adjust') then
+ ltjb.add_to_callback('luatexja.adjust_jfmglue', insert_lineend_kern, 'luatexja.adjust')
+ end
myaw_step1, myaw_step1_last = dummy, aw_step1_last
else
if status_le==0 then
@@ -425,13 +424,13 @@ do
myaw_step1, myaw_step1_last = aw_step1, aw_step1_last
end
if luatexbase.in_callback('luatexja.adjust_jfmglue', 'luatexja.adjust') then
- luatexbase.remove_from_callback('luatexja.adjust_jfmglue', 'luatexja.adjust')
+ luatexbase.remove_from_callback('luatexja.adjust_jfmglue', 'luatexja.adjust')
end
end
myaw_step2 = (status_pr>0) and aw_step2 or aw_step2_dummy
luatexja.lineskip.setting(
status_lp>0 and 'profile' or 'dummy',
- status_ls>0 and 'step' or 'dummy'
+ status_ls>0 and 'step' or 'dummy'
)
end
local function disable_cb() -- only for compatibility
@@ -455,7 +454,7 @@ do
ins(package[1], {b,e,[ind]=d})
end
local function flatten(package)
- local bd={} for i,_ in pairs(package[2]) do ins(bd,{i}) end
+ local bd = {} for i,_ in pairs(package[2]) do ins(bd,{i}) end
sort(bd, function (a,b) return a[1]<b[1] end)
local bdc=#bd; local t = package[1]
sort(t, function (a,b) return a[1]<b[1] end)
@@ -469,7 +468,7 @@ do
bd[j][k]=bd[j][k] and max(bd[j][k],w) or w
end
end
- j=j+1
+ j = j + 1
end
end
package[2]=nil; package[1]=nil; package.flatten, package.insert=nil, nil
@@ -527,7 +526,7 @@ do
if lmin==1/0 then lmin = bw end
return lmin,
bw - lmin - getfield(before, 'depth')
- - getfield(after, mirrored and 'depth' or 'height')
+ - getfield(after, mirrored and 'depth' or 'height')
end
end
end
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-base.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-base.lua
index 3f4a0ba1f82..ad5bb816a57 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltj-base.lua
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-base.lua
@@ -30,25 +30,22 @@ do
--! LaTeX 形式のエラーメッセージ(\PackageError 等)を
--! Lua 関数の呼び出しで行う.
- local LF = "\n"
- local err_break = ""
+ local LF, BEL = "\n", "\a"
local err_main = ""
local err_help = ""
local function message_cont(str, c)
- return str:gsub(err_break, LF .. c)
+ return str:gsub(LF, LF .. c)
end
local function into_lines(str)
- return str:gsub(err_break, LF):explode(LF)
- end
-
- _error_set_break = function (str)
- err_break = str
+ return str:explode(LF)
end
_error_set_message = function (msgcont, main, help)
- err_main = message_cont(main, msgcont)
- err_help = into_lines(help)
+ err_main = message_cont(main, msgcont):gsub(BEL, LF)
+ err_help = (help and help~="") and into_lines(help)
+ or {"Sorry, I don't know how to help in this situation.",
+ "Maybe you should try asking a human?" }
end
_error_show = function (escchar)
@@ -67,7 +64,7 @@ do
local message_a = "Type H <return> for immediate help"
generic_error = function (msgcont, main, ref, help)
- local mainref = main..".\n\n"..ref.."\n"..message_a
+ local mainref = main..".\a\a"..ref..BEL..message_a
_error_set_message(msgcont, mainref, help)
_error_show(true)
end
@@ -79,7 +76,7 @@ do
local on_line = line and (" on input line "..tex.inputlineno) or ""
local newlinechar = tex.newlinechar
tex.newlinechar = -1
- texio.write_nl(out, br..main..on_line.."."..br)
+ texio.write_nl(out, br..mainc..on_line.."."..br)
tex.newlinechar = newlinechar
end
@@ -97,25 +94,25 @@ do
end
package_error = function (pkgname, main, help)
- generic_error("("..pkgname.." ",
+ generic_error("("..pkgname..") ",
"Package "..pkgname.." Error: "..main,
"See the "..pkgname.." package documentation for explanation.",
help)
end
package_warning = function (pkgname, main)
- generic_warning("("..pkgname.." ",
+ generic_warning("("..pkgname..") ",
"Package "..pkgname.." Warning: "..main)
end
package_warning_no_line = function (pkgname, main)
- generic_warning_no_line("("..pkgname.." ",
+ generic_warning_no_line("("..pkgname..") ",
"Package "..pkgname.." Warning: "..main)
end
package_info = function (pkgname, main)
- generic_info("("..pkgname.." ",
+ generic_info("("..pkgname..") ",
"Package "..pkgname.." Info: "..main)
end
package_info_no_line = function (pkgname, main)
- generic_info_no_line("("..pkgname.." ",
+ generic_info_no_line("("..pkgname..") ",
"Package "..pkgname.." Info: "..main)
end
@@ -231,6 +228,7 @@ end
require('lualibs-lpeg') -- string.split
require('lualibs-os') -- os.type
+require('lualibs-gzip') -- gzip.*
do
local kpse_var_value = kpse.var_value
@@ -248,6 +246,7 @@ do
local join, isreadable = file.join, file.isreadable
local tofile, serialize = table.tofile, table.serialize
local luc_suffix = jit and '.lub' or '.luc'
+ local dump = string.dump
-- determine save path
local savepath = ''
@@ -256,43 +255,56 @@ do
if not lfs.isdir(testpath) then dir.mkdirs(testpath) end
if lfs.isdir(testpath) then savepath = testpath; break end
end
+ local serial_spec = {functions=false, noquotes=true}
+
+ local function remove_file_if_exist(name)
+ if os.rename(name,name) then os.remove(name) end
+ end
+ local function remove_cache (filename)
+ local fullpath_wo_ext = savepath .. '/' .. filename .. '.lu'
+ remove_file_if_exist(fullpath_wo_ext .. 'a')
+ remove_file_if_exist(fullpath_wo_ext .. 'a.gz')
+ remove_file_if_exist(fullpath_wo_ext .. 'b')
+ remove_file_if_exist(fullpath_wo_ext .. 'c')
+ end
local function save_cache_luc(filename, t, serialized)
local fullpath = savepath .. '/' .. filename .. luc_suffix
- local s = serialized or serialize(t, 'return', false)
+ local s = serialized or serialize(t, 'return', false, serial_spec)
if s then
local sa = load(s)
local f = io.open(fullpath, 'wb')
if f and sa then
- f:write(string.dump(sa, true))
- texio.write('(save cache: ' .. fullpath .. ')')
+ f:write(dump(sa, true))
+ texio.write('log', '(save cache: ' .. fullpath .. ')')
+ f:close()
end
- f:close()
end
end
local function save_cache(filename, t)
- local fullpath = savepath .. '/' .. filename .. '.lua'
- local s = serialize(t, 'return', false)
+ local fullpath = savepath .. '/' .. filename .. '.lua.gz'
+ local s = serialize(t, 'return', false, serial_spec)
if s then
- local f = io.open(fullpath, 'w')
- if f then
- f:write(s)
- texio.write('(save cache: ' .. fullpath .. ')')
- end
- f:close()
- save_cache_luc(filename, t, s)
+ gzip.save(fullpath, s, 1)
+ texio.write('log', '(save cache: ' .. fullpath .. ')')
+ save_cache_luc(filename, t, s)
end
end
- local function load_cache_a(filename, outdate)
+ local function load_cache_a(filename, outdate, compressed)
local result
for _,v in pairs(path) do
local fn = join(v, cache_dir, filename)
- if isreadable(fn) then
- texio.write('(load cache: ' .. fn .. ')')
- result = loadfile(fn)
- result = result and result(); break
+ if isreadable(fn) then
+ texio.write('log','(load cache: ' .. filename .. ')')
+ if compressed then
+ result = loadstring(gzip.load(fn))
+ else
+ result = loadfile(fn)
+ end
+ result = result and result()
+ break
end
end
if (not result) or outdate(result) then
@@ -303,26 +315,17 @@ do
end
local function load_cache(filename, outdate)
- local r = load_cache_a(filename .. luc_suffix, outdate)
+ remove_file_if_exist(savepath .. '/' .. filename .. '.lua')
+ local r = load_cache_a(filename .. luc_suffix, outdate, false)
if r then
return r
else
- local r = load_cache_a(filename .. '.lua', outdate)
+ local r = load_cache_a(filename .. '.lua.gz', outdate, true)
if r then save_cache_luc(filename, r) end -- update the precompiled cache
return r
end
end
- local function remove_file_if_exist(name)
- if os.rename(name,name) then os.remove(name) end
- end
- local function remove_cache (filename)
- local fullpath_wo_ext = savepath .. '/' .. filename .. '.lu'
- remove_file_if_exist(fullpath_wo_ext .. 'a')
- remove_file_if_exist(fullpath_wo_ext .. 'b')
- remove_file_if_exist(fullpath_wo_ext .. 'c')
- end
-
ltjb.remove_cache = remove_cache
ltjb.load_cache = load_cache
ltjb.save_cache_luc = save_cache_luc
@@ -340,7 +343,6 @@ do
end
----
-ltjb._error_set_break = _error_set_break
ltjb._error_set_message = _error_set_message
ltjb._error_show = _error_show
ltjb._generic_warn_info = _generic_warn_info
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-base.sty b/Master/texmf-dist/tex/luatex/luatexja/ltj-base.sty
index 717105e3a50..605797f3a37 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltj-base.sty
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-base.sty
@@ -13,7 +13,7 @@
\ifltj@in@latex %<*LaTeX>
\NeedsTeXFormat{LaTeX2e}
- \ProvidesPackage{ltj-base}[2017/05/05]
+ \ProvidesPackage{ltj-base}[2020-07-27]
\fi %</LaTeX>
%%------------------ Tiny helpers
@@ -256,151 +256,6 @@
%! つまり単なる \luatexescape.
\let\ltj@luaxescape\luatexluaescapestring
-%%------------------ Fully-expandable error messaging
-
-%! ixerrtrick パッケージから移植.
-%! 展開限定文脈でも使える \PackageError 等.
-%! Lua 関数版(luatexja/base.lua 参照)もある.
-
-%% \ltj@@error@message@a
-\begingroup
-\def~{ }
-\xdef\ltj@@error@message@a{%
- Type~~H <return>~~for immediate help%
-}%
-\endgroup
-
-%%<+> \ltj@MessageBreak
-% An analogue of \MessageBreak that is used in \ltj@GenericError, etc.
-% (\MessageBreak cannot be used there.)
-% NB: It is realized as a macro that expands to two instances
-% of the character of code 127. This marker is later detected
-% by the Lua process.
-\begingroup
-\lccode42=127
-\lowercase{
- \gdef\ltj@MessageBreak{**}
- \directlua{
- luatexja.base._error_set_break("**")
- }
-}
-\endgroup
-
-%%<+> \ltj@GenericError{<cont>}{<msg-main>}{<msg-ref>}{<msg-help>}
-% A variant of \GenericError that can be used in expansion-only
-% situation. The meanings of arguments are the same as the original
-% \GenericError.
-%%<+> \ltj@PlainError{<msg-main>}{<msg-help>}
-% A simpler error messenger available in expansion-only situations.
-% It behaves similarly to:
-% \errhelp{<msg-help}\errmessage{<msg-main>}
-\begingroup
-% with the same hack as in \GenericError...
-\lccode`\@=`\ %
-\lccode`\~=`\ %
-\lccode`\}=`\ %
-\lccode`\{=`\ %
-\catcode`\ =11\relax%
-\lowercase{%
-\endgroup%
-\def\ltj@GenericError#1#2#3#4{% not protected
-\directlua{%
-luatexja.base._error_set_message("\ltj@luaxescape{#1}",%
-"\ltj@luaxescape{#2.^^J^^J#3^^J\ltj@@error@message@a}",%
-"\ltj@luaxescape{#4}")%
-}%
-\ % use csname with four spaces as last expander
-}
-\def\ {% csname with four spaces
-\directlua{%
-luatexja.base._error_show(false)% and many spaces trail!
- %
- %
-}%
-}%
-\def\ltj@PlainError#1#2{%
-\directlua{%
-luatexja.base._error_set_message(" ",%
-"\ltj@luaxescape{#1}",%
-"\ltj@luaxescape{#2}")%
-}%
-\error % again a weird name is used
-}
-\def\error {% csname with two trailing spaces
-\directlua{%
-luatexja.base._error_show(true)% and many spaces trail!
- %
- %
-}%
-}%
-}
-
-%% \ltj@@error@on@line
-\def\ltj@@error@on@line{
- on input line \the \inputlineno
-}
-
-%% \ltj@generic@warn@info
-\def\ltj@@generic@warn@info#1#2#3#4{
- \begingroup
- \directlua{
- luatexja.base._generic_warn_info("\ltj@luaxescape{#3}",
- "\ltj@luaxescape{#4}", (#1 > 0), (#2 > 0))
- }
- \endgroup
-}
-
-%% \ltj@GenericWarning{<cont>}{<msg-main>}
-\def\ltj@GenericWarning{
- \ltj@@generic@warn@info{1}{1}
-}
-%% \ltj@GenericWarningNoLine{<cont>}{<msg-main>}
-\def\ltj@GenericWarningNoLine{
- \ltj@@generic@warn@info{1}{0}
-}
-%% \ltj@GenericInfo{<cont>}{<msg-main>}
-\def\ltj@GenericInfo{
- \ltj@@generic@warn@info{0}{1}
-}
-%% \ltj@GenericInfoNoLine{<cont>}{<msg-main>}
-\def\ltj@GenericInfoNoLine{
- \ltj@@generic@warn@info{0}{0}
-}
-
-%% \ltj@@space@seq@a
-\begingroup
-\def~{ }
-\xdef\ltj@@space@seq@a{~~~~~~~~~~~~~~~~}
-\xdef\ltj@@space@seq@b{~~~~~~~~~~~~~}
-\endgroup
-
-%% \ltj@PackageError{<pkg-name>}{<msg-main>}{<msg-help>}
-\def\ltj@PackageError#1#2#3{%
- \ltj@GenericError{(#1)\ltj@@space@seq@a}%
- {Package #1 Error: #2}%
- {See the #1 package documentation for explanation.}%
- {#3}%
-}
-%% \ltj@PackageWarning{<pkg-name>}{<msg-main>}
-\def\ltj@PackageWarning#1#2{%
- \ltj@GenericWarning{(#1)\ltj@@space@seq@a}%
- {Package #1 Warning: #2}%
-}
-%% \ltj@PackageWarningNoLine{<pkg-name>}{<msg-main>}
-\def\ltj@PackageWarningNoLine#1#2{%
- \ltj@GenericWarningNoLine{(#1)\ltj@@space@seq@a}%
- {Package #1 Warning: #2}%
-}
-%% \ltj@PackageInfo{<pkg-name>}{<msg-main>}
-\def\ltj@PackageInfo#1#2{%
- \ltj@GenericInfo{(#1)\ltj@@space@seq@b}%
- {Package #1 Info: #2}%
-}
-%% \ltj@PackageInfoNoLine{<pkg-name>}{<msg-main>}
-\def\ltj@PackageInfoNoLine#1#2{%
- \ltj@GenericInfoNoLine{(#1)\ltj@@space@seq@b}%
- {Package #1 Info: #2}%
-}
%%------------------ debug logging
\ifdefined\LuaTeXjaDebugEnabled
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-charrange.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-charrange.lua
index 47b4be3def3..46075b21664 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltj-charrange.lua
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-charrange.lua
@@ -3,11 +3,11 @@
--
luatexbase.provides_module({
name = 'luatexja.charrange',
- date = '2019/09/26',
+ date = '2020-07-30',
description = 'Handling the range of Japanese characters',
})
luatexja.charrange = {}
-luatexja.load_module('base'); local ltjb = luatexja.base
+luatexja.load_module 'base'; local ltjb = luatexja.base
local getchar = node.direct.getchar
local has_attr = node.direct.has_attribute
@@ -49,18 +49,16 @@ for i=0x100,ucs_out-1 do jcr_table_main[i]=0 end
function luatexja.charrange.add_char_range(b,e,ind) -- ind: external range number
if not ind or ind<0 or ind>31*ATTR_RANGE then -- 0 はエラーにしない(隠し)
ltjb.package_error('luatexja',
- "invalid character range number (" .. ind .. ")",
- "A character range number should be in the range 1.."
+ "invalid character range number (" .. ind .. ")",
+ "A character range number should be in the range 1.."
.. 31*ATTR_RANGE .. ",\n" ..
- "ignored.")
+ "ignored.")
return
elseif b<0x80 or e>=ucs_out then
ltjb.package_warning('luatexja',
- 'bad character range ([' .. b .. ',' .. e .. ']). ' ..
- 'I take the intersection with [0x80, 0x10ffff].')
- elseif b>e then
- local j=b; e=b; b=j
- end
+ 'bad character range ([' .. b .. ',' .. e .. ']). ' ..
+ 'I take the intersection with [0x80, 0x10ffff].')
+ elseif b>e then b, e = e, b end
if ind == 31*ATTR_RANGE then ind=0 end
for i=math.max(0x80,b),math.min(ucs_out-1,e) do
jcr_table_main[i]=ind
@@ -92,9 +90,9 @@ end
-- EXT
function luatexja.charrange.toggle_char_range(g, i) -- i: external range number
if type(i)~='number' then
- ltjb.package_error('luatexja',
- "invalid character range number (" .. tostring(i).. ")",
- "A character range number must be a number, ignored.")
+ ltjb.package_error('luatexja',
+ "invalid character range number (" .. tostring(i).. ")",
+ "A character range number must be a number, ignored.")
elseif i==0 then return
else
local kc
@@ -103,7 +101,7 @@ function luatexja.charrange.toggle_char_range(g, i) -- i: external range number
local attr = kcat_attr_table[i]
local a = tex_getattr(attr)
tex.setattribute(g, attr,
- (floor(a/pow_table[i+1])*2+kc)*pow_table[i]+a%pow_table[i])
+ (floor(a/pow_table[i+1])*2+kc)*pow_table[i]+a%pow_table[i])
end
end
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-compat.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-compat.lua
index c8e046c63da..d660915a31a 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltj-compat.lua
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-compat.lua
@@ -2,8 +2,8 @@
-- ltj-compat.lua
--
-luatexja.load_module('base'); local ltjb = luatexja.base
-luatexja.load_module('stack'); local ltjs = luatexja.stack
+luatexja.load_module 'base'; local ltjb = luatexja.base
+luatexja.load_module 'stack'; local ltjs = luatexja.stack
local stack_table_index = luatexja.stack_table_index
-- load jisx0208 table
@@ -12,7 +12,7 @@ local cache_ver = 3
local cache_outdate_fn = function (t) return t.version~=cache_ver end
local jisx0208 = ltjb.load_cache('ltj-jisx0208',cache_outdate_fn)
if not jisx0208 then -- make cache
- jisx0208 = require('ltj-jisx0208.lua')
+ jisx0208 = require 'ltj-jisx0208.lua'
ltjb.save_cache_luc('ltj-jisx0208', jisx0208)
end
@@ -22,39 +22,35 @@ local utfchar=utf.char
local function to_kansuji(num)
if not num then num=0; return
elseif num<0 then
- num = -num; tex.write('-')
+ num = -num; tex.write '-'
end
local s = ""
while num~=0 do
s = utfchar(
- ltjs.get_stack_table(luatexja.stack_table_index.KSJ + num%10,
- '', tex.getcount('ltj@@stack'))) .. s
+ ltjs.get_stack_table(luatexja.stack_table_index.KSJ + num%10,
+ '', tex.getcount 'ltj@@stack')) .. s
num=math.floor(num/10)
end
tex.write(s)
end
+local function error_invalid_charcode(i)
+ ltjb.package_error('luatexja',
+ "invalid character code (".. tostring(i) .. ")",
+ "I'm going to use 0 instead of that illegal character code.")
+end
+
-- \ucs: 単なる identity
local function from_ucs(i)
- if type(i)~='number' then
- ltjb.package_error('luatexja',
- "invalid character code (".. tostring(i) .. ")",
- "I'm going to use 0 instead of that illegal character code.")
- i=0
- end
+ if type(i)~='number' then error_invalid_charcode(i); i=0 end
tex.write(i)
end
-- \kuten: 面区点 (それぞれで16進2桁を使用)=> Unicode 符号位置
local function from_kuten(i)
- if type(i)~='number' then
- ltjb.package_error('luatexja',
- "invalid character code (".. tostring(i) .. ")",
- "I'm going to use 0 instead of that illegal character code.")
- i=0
- end
+ if type(i)~='number' then error_invalid_charcode(i); i=0 end
if (i%256==0)or(i%256>94) then
- tex.write('0')
+ tex.write '0'
else
tex.write(tostring(jisx0208.table_jisx0208_uptex[math.floor(i/256)*94+(i%256)-94] or 0))
end
@@ -62,11 +58,8 @@ end
-- \euc: EUC-JP による符号位置 => Unicode 符号位置
local function from_euc(i)
- if type(i)~='number' then
- ltjb.package_error('luatexja',
- "invalid character code (".. tostring(i) .. ")",
- "I'm going to use 0 instead of that illegal character code.")
- i=0
+ if type(i)~='number' then
+ error_invalid_charcode(i); i=0
elseif i>=0x10000 or i<0xa0a0 then
i=0
end
@@ -75,22 +68,14 @@ end
-- \jis: ISO-2022-JP による符号位置 => Unicode 符号位置
local function from_jis(i)
- if (type(i)~='number') or i>=0x10000 or i<0 then
- ltjb.package_error('luatexja',
- "invalid character code (".. tostring(i) .. ")",
- "I'm going to use 0 instead of that illegal character code.")
- i=0
- end
+ if type(i)~='number' then error_invalid_charcode(i); i=0 end
from_kuten(i-0x2020)
end
-- \sjis: Shift_JIS による符号位置 => Unicode 符号位置
local function from_sjis(i)
if (type(i)~='number') or i>=0x10000 or i<0 then
- ltjb.package_error('luatexja',
- "invalid character code (".. tostring(i) .. ")",
- "I'm going to use 0 instead of that illegal character code.")
- tex.write('0'); return
+ error_invalid_charcode(i); tex.write '0'; return
end
local c2 = math.floor(i/256)
local c1 = i%256
@@ -102,20 +87,19 @@ local function from_sjis(i)
{ [false]=15 } }
if c2 >= 0x81 then
if c2 >= 0xF0 then -- this if block won't be true
- if (c2 <= 0xF3 or (c2 == 0xF4 and c1 < 0x9F)) then
- c2 = 0x100 + shift_jisx0213_s1a3_table[c2 - 0xF0 + 1][(0x9E < c1)];
- else -- 78<=k<=94
- c2 = c2 * 2 - 413 + 0x100; if 0x9E < c1 then c2=c2+1 end
- end
+ if (c2 <= 0xF3 or (c2 == 0xF4 and c1 < 0x9F)) then
+ c2 = 0x100 + shift_jisx0213_s1a3_table[c2 - 0xF0 + 1][(0x9E < c1)];
+ else -- 78<=k<=94
+ c2 = c2 * 2 - 413 + 0x100; if 0x9E < c1 then c2=c2+1 end
+ end
else
- if c2<=0x9f then i=0x101 else i=0x181 end
- c2 = c2 + c2 - i; if 0x9E < c1 then c2=c2+1 end
+ if c2<=0x9f then i=0x101 else i=0x181 end
+ c2 = c2 + c2 - i; if 0x9E < c1 then c2=c2+1 end
end
if c1 < 0x9F then
- if c1>0x7f then i=0x40 else i=0x3f end
- c1 = c1 - i
+ if c1>0x7f then i=0x40 else i=0x3f end; c1 = c1 - i
else
- c1 = c1 - 0x9e
+ c1 = c1 - 0x9e
end
from_kuten(c2*256+c1)
end
@@ -124,9 +108,9 @@ end
luatexja.binary_pars.kansujichar = function(c, t)
if type(c)~='number' or c<0 or c>9 then
ltjb.package_error('luatexja',
- 'Invalid KANSUJI number (' .. tostring(c) .. ')',
- 'A KANSUJI number should be in the range 0..9.\n'..
- 'So I changed this one to zero.')
+ 'Invalid KANSUJI number (' .. tostring(c) .. ')',
+ 'A KANSUJI number should be in the range 0..9.\n'..
+ 'So I changed this one to zero.')
c=0
end
return ltjs.get_stack_table(stack_table_index.KSJ + c, 0, t)
@@ -134,11 +118,8 @@ end
local t = {
- from_euc = from_euc,
- from_kuten = from_kuten,
- from_jis = from_jis,
- from_sjis = from_sjis,
- from_ucs = from_ucs,
- to_kansuji = to_kansuji,
+ from_euc = from_euc, from_kuten = from_kuten,
+ from_jis = from_jis, from_sjis = from_sjis,
+ from_ucs = from_ucs, to_kansuji = to_kansuji,
}
luatexja.compat = t
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-direction.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-direction.lua
index 7dd0dee9061..523397d804c 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltj-direction.lua
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-direction.lua
@@ -2,8 +2,8 @@
-- src/ltj-direction.lua
--
-luatexja.load_module('base'); local ltjb = luatexja.base
-luatexja.load_module('stack'); local ltjs = luatexja.stack
+luatexja.load_module 'base'; local ltjb = luatexja.base
+luatexja.load_module 'stack'; local ltjs = luatexja.stack
luatexja.direction = {}
local attr_dir = luatexbase.attributes['ltj@dir']
@@ -29,17 +29,17 @@ local node_next = node.direct.getnext
local traverse = node.direct.traverse
local traverse_id = node.direct.traverse_id
local start_time_measure, stop_time_measure
- = ltjb.start_time_measure, ltjb.stop_time_measure
+ = ltjb.start_time_measure, ltjb.stop_time_measure
local abs = math.abs
-local id_kern = node.id('kern')
-local id_hlist = node.id('hlist')
-local id_vlist = node.id('vlist')
-local id_whatsit = node.id('whatsit')
-local sid_save = node.subtype('pdf_save')
-local sid_restore = node.subtype('pdf_restore')
-local sid_matrix = node.subtype('pdf_setmatrix')
-local sid_user = node.subtype('user_defined')
+local id_kern = node.id 'kern'
+local id_hlist = node.id 'hlist'
+local id_vlist = node.id 'vlist'
+local id_whatsit = node.id 'whatsit'
+local sid_save = node.subtype 'pdf_save'
+local sid_restore= node.subtype 'pdf_restore'
+local sid_matrix = node.subtype 'pdf_setmatrix'
+local sid_user = node.subtype 'user_defined'
local tex_nest = tex.nest
local tex_getcount = tex.getcount
@@ -94,35 +94,34 @@ local get_dir_count, get_adjust_dir_count
do
local function get_dir_count_inner(h)
if h then
- if h.id==id_whatsit and h.subtype==sid_user and h.user_id==DIR then
- local ic = node.has_attribute(h, attr_icflag) or 0
- return (ic<PROCESSED_BEGIN_FLAG)
- and (node.has_attribute(h,attr_dir)%dir_node_auto) or 0
- else
- return 0
- end
+ if h.id==id_whatsit and h.subtype==sid_user and h.user_id==DIR then
+ return ((node.has_attribute(h, attr_icflag) or 0)<PROCESSED_BEGIN_FLAG)
+ and (node.has_attribute(h,attr_dir)%dir_node_auto) or 0
+ else
+ return 0
+ end
else
- return 0
+ return 0
end
end
function get_dir_count()
for i=tex_nest.ptr, 1, -1 do
- local h = tex_nest[i].head.next
- if h then
- local t = get_dir_count_inner(h)
- if t~=0 then return t end
- end
+ local h = tex_nest[i].head.next
+ if h then
+ local t = get_dir_count_inner(h)
+ if t~=0 then return t end
+ end
end
return page_direction
end
function get_adjust_dir_count()
for i=tex_nest.ptr, 1, -1 do
local v = tex_nest[i]
- local h, m = v.head.next, v.mode
- if abs(m)== ltjs.vmode and h then
- local t = get_dir_count_inner(h)
- if t~=0 then return t end
- end
+ local h, m = v.head.next, v.mode
+ if abs(m)== ltjs.vmode and h then
+ local t = get_dir_count_inner(h)
+ if t~=0 then return t end
+ end
end
return page_direction
end
@@ -138,35 +137,34 @@ do
local node_traverse = node.traverse
local STCK = luatexja.userid_table.STCK
local IHB = luatexja.userid_table.IHB
- local id_local = node.id('local_par')
- local id_dir = node.id('dir')
+ local id_local = node.id 'local_par'
+ local id_dir = node.id 'dir'
local function test_list(h, lv)
if not h then
- return 2 -- need to create dir_whatsit
+ return 2 -- need to create dir_whatsit
else
- local flag = 2 -- need to create dir_whatsit
- local w
- for p in node_traverse(h) do
- if p.id==id_whatsit then
- local ps = p.subtype
- if ps==sid_user then
- local uid= p.user_id
- if uid==DIR then
- flag = 1; w = w or p -- found
- elseif not(uid==IHB or uid==STCK) then
- flag = 0; break -- error
- end
- end
- elseif p.id~=id_local and p.id~=id_dir then
- flag = 0; break
- end
- end
- if flag==1 then -- dir_whatsit already exists
- return 1,w
- else
- return flag
- end
+ local flag = 2 -- need to create dir_whatsit
+ local w
+ for p in node_traverse(h) do
+ if p.id==id_whatsit then
+ if p.subtype==sid_user then
+ local uid= p.user_id
+ if uid==DIR then
+ flag = 1; w = w or p -- found
+ elseif not(uid==IHB or uid==STCK) then
+ return 0 -- error
+ end
+ end
+ elseif p.id~=id_local and p.id~=id_dir then
+ return 0 -- error
+ end
+ end
+ if flag==1 then -- dir_whatsit already exists
+ return 1, w
+ else
+ return flag
+ end
end
end
local node_next_node, node_tail_node = node.next, node.tail
@@ -175,9 +173,9 @@ do
local lv = tex_nest.ptr -- must be >= 1
if not v then
v = get_dir_count()
- if abs(tex_nest[lv-1].mode) == ltjs.mmode and v == dir_tate then
- v = dir_utod
- end
+ if abs(tex_nest[lv-1].mode) == ltjs.mmode and v == dir_tate then
+ v = dir_utod
+ end
elseif v=='adj' then
v = get_adjust_dir_count()
end
@@ -195,32 +193,32 @@ do
local lv = tex_nest.ptr
if not v then
v,name = get_dir_count(), nil
- if lv>=1 and abs(tex_nest[lv-1].mode) == ltjs.mmode and v == dir_tate then
- v = dir_utod
- end
+ if lv>=1 and abs(tex_nest[lv-1].mode) == ltjs.mmode and v == dir_tate then
+ v = dir_utod
+ end
elseif v=='adj' then
v,name = get_adjust_dir_count(), nil
end
local current_nest = tex_nest[lv]
if tex.currentgrouptype==6 then
- ltjb.package_error(
+ ltjb.package_error(
'luatexja',
"You can't use `\\" .. name .. "' in an align",
- "To change the direction in an align, \n"
- .. "you shold use \\hbox or \\vbox.")
+ "To change the direction in an align, \n"
+ .. "you shold use \\hbox or \\vbox.")
elseif current_nest.mode == ltjs.hmode or abs(current_nest.mode) == ltjs.mmode then
- ltjb.package_error(
+ ltjb.package_error(
'luatexja',
- "Improper `\\" .. name .. "'",
- 'You cannot change the direction in unrestricted horizontal mode \n'
- .. 'nor math modes.')
+ "Improper `\\" .. name .. "'",
+ 'You cannot change the direction in unrestricted horizontal mode \n'
+ .. 'nor math modes.')
else
- local h = (lv==0) and tex.lists.page_head or current_nest.head.next
- local flag,w = test_list(h,lv)
- if flag==0 then
- if lv==0 and not page_direction then
- page_direction = v -- for first call of \yoko (in luatexja-core.sty)
- else
+ local h = (lv==0) and tex.lists.page_head or current_nest.head.next
+ local flag,w = test_list(h,lv)
+ if flag==0 then
+ if lv==0 and not page_direction then
+ page_direction = v -- for first call of \yoko (in luatexja-core.sty)
+ else
if luatexja.debug then
luatexja.ext_show_node_list(node.direct.tonode(h),'>> ', texio.write_nl)
end
@@ -228,21 +226,21 @@ do
'luatexja',
"Use `\\" .. tostring(name) .. "' at top of list",
'Direction change command by LuaTeX-ja is available\n'
- .. 'only when the current list is null.')
- end
- elseif flag==1 then
- node_set_attr(w, attr_dir, v)
- if lv==0 then page_direction = v end
- elseif lv==0 then
- page_direction = v
- else -- flag == 2: need to create dir whatsit.
- local h = current_nest.head
- local hn = node.next(h)
- hn = (hn and hn.id==id_local) and hn or h
- local w = to_node(dir_pool[v]())
- insert_after_node(h,hn,w)
- current_nest.tail = node_tail_node(w)
- end
+ .. 'only when the current list is null.')
+ end
+ elseif flag==1 then
+ node_set_attr(w, attr_dir, v)
+ if lv==0 then page_direction = v end
+ elseif lv==0 then
+ page_direction = v
+ else -- flag == 2: need to create dir whatsit.
+ local h = current_nest.head
+ local hn = node.next(h)
+ hn = (hn and hn.id==id_local) and hn or h
+ local w = to_node(dir_pool[v]())
+ insert_after_node(h,hn,w)
+ current_nest.tail = node_tail_node(w)
+ end
ensure_tex_attr(attr_icflag, 0)
end
ensure_tex_attr(attr_dir, 0)
@@ -253,13 +251,13 @@ end
-- ボックスに dir whatsit を追加
local function create_dir_whatsit(hd, gc, new_dir)
if getid(hd)==id_whatsit and
- getsubtype(hd)==sid_user and getfield(hd, 'user_id')==DIR then
+ getsubtype(hd)==sid_user and getfield(hd, 'user_id')==DIR then
set_attr(hd, attr_icflag,
- get_attr_icflag(hd) + PROCESSED_BEGIN_FLAG)
+ get_attr_icflag(hd) + PROCESSED_BEGIN_FLAG)
local n =node_next(hd)
if n then
- set_attr(n, attr_icflag,
- get_attr_icflag(n) + PROCESSED_BEGIN_FLAG)
+ set_attr(n, attr_icflag,
+ get_attr_icflag(n) + PROCESSED_BEGIN_FLAG)
end
ensure_tex_attr(attr_icflag, 0)
return hd
@@ -268,7 +266,7 @@ local function create_dir_whatsit(hd, gc, new_dir)
setfield(w, 'next', hd)
set_attr(w, attr_icflag, PROCESSED_BEGIN_FLAG)
set_attr(hd, attr_icflag,
- get_attr_icflag(hd) + PROCESSED_BEGIN_FLAG)
+ get_attr_icflag(hd) + PROCESSED_BEGIN_FLAG)
ensure_tex_attr(attr_icflag, 0)
ensure_tex_attr(attr_dir, 0)
return w
@@ -282,81 +280,81 @@ do
local function create_dir_whatsit_hpack(h, gc)
local hd = to_direct(h)
if gc=='fin_row' then
- if hd then
- for p in traverse_id(15, hd) do -- unset
- if get_box_dir(p, 0)==0 then
+ if hd then
+ for p in traverse_id(15, hd) do -- unset
+ if get_box_dir(p, 0)==0 then
setfield(p, 'head', create_dir_whatsit(getlist(p), 'fin_row', ltjs.list_dir))
end
- end
- set_attr(hd, attr_icflag, PROCESSED_BEGIN_FLAG)
- ensure_tex_attr(attr_icflag, 0)
- end
- return h
+ end
+ set_attr(hd, attr_icflag, PROCESSED_BEGIN_FLAG)
+ ensure_tex_attr(attr_icflag, 0)
+ end
+ return h
elseif gc == 'preamble' then
else
- adjust_badness(hd)
- return to_node(create_dir_whatsit(hd, gc, ltjs.list_dir))
+ adjust_badness(hd)
+ return to_node(create_dir_whatsit(hd, gc, ltjs.list_dir))
end
end
ltjb.add_to_callback('hpack_filter',
- create_dir_whatsit_hpack, 'ltj.create_dir_whatsit', 10000)
+ create_dir_whatsit_hpack, 'ltj.create_dir_whatsit', 10000)
end
do
local function create_dir_whatsit_parbox(h, gc)
- stop_time_measure('tex_linebreak');
+ stop_time_measure 'tex_linebreak';
-- start 側は ltj-debug.lua に
local new_dir = ltjs.list_dir
for line in traverse_id(id_hlist, to_direct(h)) do
- setfield(line, 'head', create_dir_whatsit(getlist(line), gc, new_dir) )
+ setfield(line, 'head', create_dir_whatsit(getlist(line), gc, new_dir) )
end
ensure_tex_attr(attr_dir, 0)
return h
end
ltjb.add_to_callback('post_linebreak_filter',
- create_dir_whatsit_parbox, 'ltj.create_dir_whatsit', 10000)
+ create_dir_whatsit_parbox, 'ltj.create_dir_whatsit', 10000)
end
local create_dir_whatsit_vbox
do
local wh = {}
- local id_glue, sid_parskip = node.id('glue'), 3
+ local id_glue, sid_parskip = node.id 'glue', 3
create_dir_whatsit_vbox = function (hd, gc)
ltjs.list_dir = get_dir_count()
-- remove dir whatsit
for x in traverse_id(id_whatsit, hd) do
- if getsubtype(x)==sid_user and getfield(x, 'user_id')==DIR then
- wh[#wh+1]=x
- end
+ if getsubtype(x)==sid_user and getfield(x, 'user_id')==DIR then
+ wh[#wh+1]=x
+ end
end
if hd==wh[1] then
- ltjs.list_dir =has_attr(hd,attr_dir)
- local x = node_next(hd)
- if getid(x)==id_glue and getsubtype(x)==sid_parskip then
- node_remove(hd,x); node_free(x)
- end
+ ltjs.list_dir =has_attr(hd,attr_dir)
+ local x = node_next(hd)
+ if getid(x)==id_glue and getsubtype(x)==sid_parskip then
+ node_remove(hd,x); node_free(x)
+ end
end
for i=1,#wh do
- hd = node_remove(hd, wh[i]); node_free(wh[i]); wh[i] = nil
+ hd = node_remove(hd, wh[i]); node_free(wh[i]); wh[i] = nil
end
if gc=='fin_row' then -- gc == 'preamble' case is treated in dir_adjust_vpack
- if hd then
- set_attr(hd, attr_icflag, PROCESSED_BEGIN_FLAG)
- ensure_tex_attr(attr_icflag, 0)
- end
- return hd
+ if hd then
+ set_attr(hd, attr_icflag, PROCESSED_BEGIN_FLAG)
+ ensure_tex_attr(attr_icflag, 0)
+ end
+ return hd
else
- local n =node_next(hd)
- if gc=='vtop' then
- local w = create_dir_whatsit(hd, gc, ltjs.list_dir)
- -- move dir whatsit after hd
- setfield(hd, 'next', w); setfield(w, 'next', n)
- return hd
- else
- hd = create_dir_whatsit(hd, gc, ltjs.list_dir)
- return hd
- end
+ local n =node_next(hd)
+ if gc=='vtop' then
+ local w = create_dir_whatsit(hd, gc, ltjs.list_dir)
+ -- move dir whatsit after hd
+ setfield(hd, 'next', w); setfield(w, 'next', n)
+ return hd
+ else
+ hd = create_dir_whatsit(hd, gc, ltjs.list_dir)
+ return hd
+ end
end
end
end
@@ -377,131 +375,131 @@ do
local zero = function() return 0 end
dir_node_aux = {
[dir_yoko] = { -- yoko を
- [dir_tate] = { -- tate 中で組む
- width = get_h_d,
- height = get_w_half,
- depth = get_w_half_rem,
- [id_hlist] = {
- { 'whatsit', sid_save },
- { 'rotate', '0 1 -1 0' },
- { 'kern', function(w,h,d,nw,nh,nd) return -nd end },
- { 'box' , get_h},
- { 'kern', function(w,h,d,nw,nh,nd) return nd-w end },
- { 'whatsit', sid_restore },
- },
- [id_vlist] = {
- { 'whatsit', sid_save },
- { 'rotate', '0 1 -1 0' },
- { 'kern' , zero },
- { 'box' , function(w,h,d,nw,nh,nd) return -nh-nd end },
- { 'kern', get_h_d_neg},
- { 'whatsit', sid_restore },
- },
- },
- [dir_dtou] = { -- dtou 中で組む
- width = get_h_d,
- height = get_w,
- depth = zero,
- [id_hlist] = {
- { 'whatsit', sid_save },
- { 'rotate', '0 -1 1 0' },
- { 'kern', function(w,h,d,nw,nh,nd) return -nh end },
- { 'box', get_d_neg },
- { 'kern', function(w,h,d,nw,nh,nd) return nh-w end },
- { 'whatsit', sid_restore },
- },
- [id_vlist] = {
- { 'whatsit', sid_save },
- { 'rotate', '0 -1 1 0' },
- { 'kern', get_h_d_neg },
- { 'box', zero },
- { 'whatsit', sid_restore },
- },
- },
+ [dir_tate] = { -- tate 中で組む
+ width = get_h_d,
+ height = get_w_half,
+ depth = get_w_half_rem,
+ [id_hlist] = {
+ { 'whatsit', sid_save },
+ { 'rotate', '0 1 -1 0' },
+ { 'kern', function(w,h,d,nw,nh,nd) return -nd end },
+ { 'box' , get_h},
+ { 'kern', function(w,h,d,nw,nh,nd) return nd-w end },
+ { 'whatsit', sid_restore },
+ },
+ [id_vlist] = {
+ { 'whatsit', sid_save },
+ { 'rotate', '0 1 -1 0' },
+ { 'kern' , zero },
+ { 'box' , function(w,h,d,nw,nh,nd) return -nh-nd end },
+ { 'kern', get_h_d_neg},
+ { 'whatsit', sid_restore },
+ },
+ },
+ [dir_dtou] = { -- dtou 中で組む
+ width = get_h_d,
+ height = get_w,
+ depth = zero,
+ [id_hlist] = {
+ { 'whatsit', sid_save },
+ { 'rotate', '0 -1 1 0' },
+ { 'kern', function(w,h,d,nw,nh,nd) return -nh end },
+ { 'box', get_d_neg },
+ { 'kern', function(w,h,d,nw,nh,nd) return nh-w end },
+ { 'whatsit', sid_restore },
+ },
+ [id_vlist] = {
+ { 'whatsit', sid_save },
+ { 'rotate', '0 -1 1 0' },
+ { 'kern', get_h_d_neg },
+ { 'box', zero },
+ { 'whatsit', sid_restore },
+ },
+ },
},
[dir_tate] = { -- tate を
- [dir_yoko] = { -- yoko 中で組む
- width = get_h_d,
- height = get_w,
- depth = zero,
- [id_hlist] = {
- { 'whatsit', sid_save },
- { 'rotate', '0 -1 1 0' },
- { 'kern', function (w,h,d,nw,nh,nd) return -nh end },
- { 'box' , get_d_neg },
- { 'kern', function (w,h,d,nw,nh,nd) return nh-w end },
- { 'whatsit', sid_restore },
- },
- [id_vlist] = {
- { 'whatsit', sid_save },
- { 'rotate', '0 -1 1 0' },
- { 'kern', get_h_d_neg },
- { 'box', zero },
- { 'whatsit', sid_restore },
- },
- },
- [dir_dtou] = { -- dtou 中で組む
- width = get_w,
- height = get_d,
- depth = get_h,
- [id_hlist] = {
- { 'whatsit', sid_save },
- { 'rotate', '-1 0 0 -1' },
- { 'kern', get_w_neg },
- { 'box', function (w,h,d,nw,nh,nd) return h-nd end },
- { 'whatsit', sid_restore },
- },
- [id_vlist] = {
- { 'whatsit', sid_save },
- { 'rotate', '-1 0 0 -1' },
- { 'kern', get_h_d_neg },
- { 'box', get_w_neg },
- { 'whatsit', sid_restore },
- },
+ [dir_yoko] = { -- yoko 中で組む
+ width = get_h_d,
+ height = get_w,
+ depth = zero,
+ [id_hlist] = {
+ { 'whatsit', sid_save },
+ { 'rotate', '0 -1 1 0' },
+ { 'kern', function (w,h,d,nw,nh,nd) return -nh end },
+ { 'box' , get_d_neg },
+ { 'kern', function (w,h,d,nw,nh,nd) return nh-w end },
+ { 'whatsit', sid_restore },
+ },
+ [id_vlist] = {
+ { 'whatsit', sid_save },
+ { 'rotate', '0 -1 1 0' },
+ { 'kern', get_h_d_neg },
+ { 'box', zero },
+ { 'whatsit', sid_restore },
+ },
+ },
+ [dir_dtou] = { -- dtou 中で組む
+ width = get_w,
+ height = get_d,
+ depth = get_h,
+ [id_hlist] = {
+ { 'whatsit', sid_save },
+ { 'rotate', '-1 0 0 -1' },
+ { 'kern', get_w_neg },
+ { 'box', function (w,h,d,nw,nh,nd) return h-nd end },
+ { 'whatsit', sid_restore },
+ },
+ [id_vlist] = {
+ { 'whatsit', sid_save },
+ { 'rotate', '-1 0 0 -1' },
+ { 'kern', get_h_d_neg },
+ { 'box', get_w_neg },
+ { 'whatsit', sid_restore },
+ },
},
},
[dir_dtou] = { -- dtou を
- [dir_yoko] = { -- yoko 中で組む
- width = get_h_d,
- height = get_w,
- depth = zero,
- [id_hlist] = {
- { 'whatsit', sid_save },
- { 'rotate', '0 1 -1 0' },
- { 'kern', function (w,h,d,nw,nh,nd) return -nd end },
- { 'box', get_h },
- { 'kern', function (w,h,d,nw,nh,nd) return nd-w end },
- { 'whatsit', sid_restore },
- },
- [id_vlist] = {
+ [dir_yoko] = { -- yoko 中で組む
+ width = get_h_d,
+ height = get_w,
+ depth = zero,
+ [id_hlist] = {
+ { 'whatsit', sid_save },
+ { 'rotate', '0 1 -1 0' },
+ { 'kern', function (w,h,d,nw,nh,nd) return -nd end },
+ { 'box', get_h },
+ { 'kern', function (w,h,d,nw,nh,nd) return nd-w end },
+ { 'whatsit', sid_restore },
+ },
+ [id_vlist] = {
{ 'kern', zero },
- { 'whatsit', sid_save },
- { 'rotate', '0 1 -1 0' },
- { 'box', function (w,h,d,nw,nh,nd) return -nd-nh end },
- { 'kern', get_h_d_neg },
- { 'whatsit', sid_restore },
- },
- },
- [dir_tate] = { -- tate 中で組む
- width = get_w,
- height = get_d,
- depth = get_h,
- [id_hlist] = {
- { 'whatsit', sid_save },
- { 'rotate', '-1 0 0 -1' },
- { 'kern', get_w_neg },
- { 'box', function (w,h,d,nw,nh,nd) return h-nd end },
- { 'whatsit', sid_restore },
- },
- [id_vlist] = {
- { 'whatsit', sid_save },
- { 'rotate', ' -1 0 0 -1' },
- { 'kern', function (w,h,d,nw,nh,nd) return -nh-nd end },
- { 'box', get_w_neg },
- { 'kern', function (w,h,d,nw,nh,nd) return nh+nd-h-d end },
- { 'whatsit', sid_restore },
- },
- },
+ { 'whatsit', sid_save },
+ { 'rotate', '0 1 -1 0' },
+ { 'box', function (w,h,d,nw,nh,nd) return -nd-nh end },
+ { 'kern', get_h_d_neg },
+ { 'whatsit', sid_restore },
+ },
+ },
+ [dir_tate] = { -- tate 中で組む
+ width = get_w,
+ height = get_d,
+ depth = get_h,
+ [id_hlist] = {
+ { 'whatsit', sid_save },
+ { 'rotate', '-1 0 0 -1' },
+ { 'kern', get_w_neg },
+ { 'box', function (w,h,d,nw,nh,nd) return h-nd end },
+ { 'whatsit', sid_restore },
+ },
+ [id_vlist] = {
+ { 'whatsit', sid_save },
+ { 'rotate', ' -1 0 0 -1' },
+ { 'kern', function (w,h,d,nw,nh,nd) return -nh-nd end },
+ { 'box', get_w_neg },
+ { 'kern', function (w,h,d,nw,nh,nd) return nh+nd-h-d end },
+ { 'whatsit', sid_restore },
+ },
+ },
},
}
end
@@ -509,7 +507,7 @@ end
-- 1st ret val: b の組方向
-- 2nd ret val はその DIR whatsit
function get_box_dir(b, default)
- start_time_measure('get_box_dir')
+ start_time_measure 'get_box_dir'
local dir = has_attr(b, attr_dir) or 0
local bh = getfield(b,'head')
-- b は insert node となりうるので getlist() は使えない
@@ -517,20 +515,11 @@ function get_box_dir(b, default)
if bh~=0 then -- bh != nil
for bh in traverse_id(id_whatsit, bh) do
if getsubtype(bh)==sid_user and getfield(bh, 'user_id')==DIR then
- c = bh
- dir = (dir==0) and has_attr(bh, attr_dir) or dir
+ c = bh; dir = (dir==0) and has_attr(bh, attr_dir) or dir
end
end
end
- -- for i=1,2 do
- -- if bh and getid(bh)==id_whatsit
- -- and getsubtype(bh)==sid_user and getfield(bh, 'user_id')==DIR then
- -- c = bh
- -- dir = (dir==0) and has_attr(bh, attr_dir) or dir
- -- end
- -- bh = node_next(bh)
- -- end
- stop_time_measure('get_box_dir')
+ stop_time_measure 'get_box_dir'
return (dir==0 and default or dir), c
end
@@ -538,54 +527,53 @@ do
local getbox = tex.getbox
local dir_backup
function luatexja.direction.unbox_check_dir(is_copy)
- start_time_measure('box_primitive_hook')
+ start_time_measure 'box_primitive_hook'
local list_dir = get_dir_count()%dir_math_mod
- local b = getbox(tex_getcount('ltj@tempcnta'))
+ local b = getbox(tex_getcount 'ltj@tempcnta')
if b and getlist(to_direct(b)) then
- local box_dir = get_box_dir(to_direct(b), dir_yoko)
- if box_dir%dir_math_mod ~= list_dir then
- ltjb.package_error(
- 'luatexja',
- "Incompatible direction list can't be unboxed",
- 'I refuse to unbox a box in differrent direction.')
+ local box_dir = get_box_dir(to_direct(b), dir_yoko)
+ if box_dir%dir_math_mod ~= list_dir then
+ ltjb.package_error(
+ 'luatexja',
+ "Incompatible direction list can't be unboxed",
+ 'I refuse to unbox a box in differrent direction.')
tex.sprint(cat_lp, '\\@gobbletwo')
- else
- dir_backup = nil
- local bd = to_direct(b)
- local hd = getlist(bd)
- local nh = hd
- while hd do
- if getid(hd)==id_whatsit and getsubtype(hd)==sid_user
- and getfield(hd, 'user_id')==DIR then
- local d = hd
- nh, hd = node_remove(nh, hd)
- if is_copy and (not dir_backup) then
- dir_backup = d
- setfield(dir_backup, 'next', nil)
- else
- node_free(d)
- end
- else
- hd = node_next(hd)
- end
- end
- setfield(bd, 'head', nh)
- end
+ else
+ dir_backup = nil
+ local bd = to_direct(b)
+ local hd = getlist(bd)
+ local nh = hd
+ while hd do
+ if getid(hd)==id_whatsit and getsubtype(hd)==sid_user
+ and getfield(hd, 'user_id')==DIR then
+ local d = hd
+ nh, hd = node_remove(nh, hd)
+ if is_copy and (not dir_backup) then
+ dir_backup = d; setfield(dir_backup, 'next', nil)
+ else
+ node_free(d)
+ end
+ else
+ hd = node_next(hd)
+ end
+ end
+ setfield(bd, 'head', nh)
+ end
end
if luatexja.global_temp and tex.globaldefs~=luatexja.global_temp then
- tex.globaldefs = luatexja.global_temp
+ tex.globaldefs = luatexja.global_temp
end
- stop_time_measure('box_primitive_hook')
+ stop_time_measure 'box_primitive_hook'
end
function luatexja.direction.uncopy_restore_whatsit()
- local b = getbox(tex_getcount('ltj@tempcnta'))
+ local b = getbox(tex_getcount 'ltj@tempcnta')
if b then
- local bd = to_direct(b)
- if dir_backup then
- setfield(dir_backup, 'next', getlist(bd))
- setfield(bd, 'head', dir_backup)
- dir_backup = nil
- end
+ local bd = to_direct(b)
+ if dir_backup then
+ setfield(dir_backup, 'next', getlist(bd))
+ setfield(bd, 'head', dir_backup)
+ dir_backup = nil
+ end
end
end
end
@@ -619,7 +607,7 @@ local function create_dir_node(b, b_dir, new_dir, is_manual)
local d = getfield(b, 'depth')
local db = node_new(getid(b)) -- dir_node
set_attr(db, attr_dir,
- new_dir + (is_manual and dir_node_manual or dir_node_auto))
+ new_dir + (is_manual and dir_node_manual or dir_node_auto))
set_attr(db, attr_icflag, PROCESSED)
set_attr(b, attr_icflag, PROCESSED)
ensure_tex_attr(attr_dir, 0)
@@ -645,108 +633,108 @@ do
local box_dir, dn = get_box_dir(b, ltjs.list_dir)
-- 既に b の中身にあるwhatsit
if (box_dir<dir_node_auto) and (not dn) then
- bh = create_dir_whatsit(bh, 'make_dir_whatsit', dir_yoko)
- dn = bh; setfield(b, 'head', bh)
+ bh = create_dir_whatsit(bh, 'make_dir_whatsit', dir_yoko)
+ dn = bh; setfield(b, 'head', bh)
end
if box_dir%dir_math_mod==new_dir then
- if box_dir>=dir_node_auto then
- -- dir_node としてカプセル化されている
- local _, dnc = get_box_dir(b, 0)
- if dnc then -- free all other dir_node
- node.direct.flush_list(getfield(dnc, 'value'))
- setfield(dnc, 'value', nil)
- end
- set_attr(b, attr_dir, box_dir%dir_math_mod + dir_node_auto)
- return head, node_next(b), b, true
- else
- -- 組方向が一緒 (up to math dir) のボックスなので,何もしなくて良い
- return head, node_next(b), b, false
- end
+ if box_dir>=dir_node_auto then
+ -- dir_node としてカプセル化されている
+ local _, dnc = get_box_dir(b, 0)
+ if dnc then -- free all other dir_node
+ node.direct.flush_list(getfield(dnc, 'value'))
+ setfield(dnc, 'value', nil)
+ end
+ set_attr(b, attr_dir, box_dir%dir_math_mod + dir_node_auto)
+ return head, node_next(b), b, true
+ else
+ -- 組方向が一緒 (up to math dir) のボックスなので,何もしなくて良い
+ return head, node_next(b), b, false
+ end
else
- -- 組方向を合わせる必要あり
+ -- 組方向を合わせる必要あり
local nh, nb, ret, flag
- if box_dir>= dir_node_auto then -- unwrap
- local b_dir
+ if box_dir>= dir_node_auto then -- unwrap
+ local b_dir
head, nb, b, b_dir = unwrap_dir_node(b, head, box_dir)
- bh = getlist(b)
- if b_dir%dir_math_mod==new_dir then
- -- dir_node の中身が周囲の組方向とあっている
- return head, nb, b, false
- else box_dir = b_dir end
- end
- box_dir = box_dir%dir_math_mod
- local db
- local dnh = getfield(dn, 'value')
- for x in traverse(dnh) do
- if has_attr(x, attr_dir)%dir_math_mod == new_dir then
- setfield(dn, 'value', to_node(node_remove(dnh, x)))
- db=x; break
- end
- end
- node.direct.flush_list(getfield(dn, 'value'))
- setfield(dn, 'value', nil)
- db = db or create_dir_node(b, box_dir, new_dir, false)
- local w = getfield(b, 'width')
- local h = getfield(b, 'height')
- local d = getfield(b, 'depth')
- local dn_w = getfield(db, 'width')
- local dn_h = getfield(db, 'height')
- local dn_d = getfield(db, 'depth')
- nh, nb = insert_before(head, b, db), nil
- nh, nb = node_remove(nh, b)
+ bh = getlist(b)
+ if b_dir%dir_math_mod==new_dir then
+ -- dir_node の中身が周囲の組方向とあっている
+ return head, nb, b, false
+ else box_dir = b_dir end
+ end
+ box_dir = box_dir%dir_math_mod
+ local db
+ local dnh = getfield(dn, 'value')
+ for x in traverse(dnh) do
+ if has_attr(x, attr_dir)%dir_math_mod == new_dir then
+ setfield(dn, 'value', to_node(node_remove(dnh, x)))
+ db=x; break
+ end
+ end
+ node.direct.flush_list(getfield(dn, 'value'))
+ setfield(dn, 'value', nil)
+ db = db or create_dir_node(b, box_dir, new_dir, false)
+ local w = getfield(b, 'width')
+ local h = getfield(b, 'height')
+ local d = getfield(b, 'depth')
+ local dn_w = getfield(db, 'width')
+ local dn_h = getfield(db, 'height')
+ local dn_d = getfield(db, 'depth')
+ nh, nb = insert_before(head, b, db), nil
+ nh, nb = node_remove(nh, b)
setfield(b, 'next', nil); setfield(db, 'head', b)
ret, flag = db, true
- return nh, nb, ret, flag
+ return nh, nb, ret, flag
end
end
process_dir_node = function (hd, gc)
local x, new_dir = hd, ltjs.list_dir or dir_yoko
while x do
- local xid = getid(x)
- if (xid==id_hlist and get_attr_icflag(x)~=PACKED)
- or xid==id_vlist then
- hd, x = make_dir_whatsit(hd, x, new_dir, 'process_dir_node:' .. gc)
- else
- x = node_next(x)
- end
+ local xid = getid(x)
+ if (xid==id_hlist and get_attr_icflag(x)~=PACKED)
+ or xid==id_vlist then
+ hd, x = make_dir_whatsit(hd, x, new_dir, 'process_dir_node:' .. gc)
+ else
+ x = node_next(x)
+ end
end
return hd
end
-- lastbox
local node_prev = (node.direct~=node) and node.direct.getprev or node.prev
- local id_glue = node.id('glue')
+ local id_glue = node.id 'glue'
local function lastbox_hook()
- start_time_measure('box_primitive_hook')
+ start_time_measure 'box_primitive_hook'
local bn = tex_nest[tex_nest.ptr].tail
if bn then
- local b, head = to_direct(bn), to_direct(tex_nest[tex_nest.ptr].head)
- local bid = getid(b)
- if bid==id_hlist or bid==id_vlist then
+ local b, head = to_direct(bn), to_direct(tex_nest[tex_nest.ptr].head)
+ local bid = getid(b)
+ if bid==id_hlist or bid==id_vlist then
local p = getlist(b)
- -- alignment の各行の中身が入ったボックス
+ -- alignment の各行の中身が入ったボックス
if p and getid(p)==id_glue and getsubtype(p)==12 then -- tabskip
- local np = node_next(p); local npid = getid(np)
- if npid==id_hlist or npid==id_vlist then
- setfield(b, 'head', create_dir_whatsit(p, 'align', get_box_dir(np, 0)))
- end
+ local np = node_next(p); local npid = getid(np)
+ if npid==id_hlist or npid==id_vlist then
+ setfield(b, 'head', create_dir_whatsit(p, 'align', get_box_dir(np, 0)))
+ end
+ end
+ local box_dir = get_box_dir(b, 0)
+ if box_dir>= dir_node_auto then -- unwrap dir_node
+ local p = node_prev(b)
+ local dummy1, dummy2, nb = unwrap_dir_node(b, nil, box_dir)
+ setfield(p, 'next', nb); tex_nest[tex_nest.ptr].tail = to_node(nb)
+ setfield(b, 'next', nil); setfield(b, 'head', nil)
+ node_free(b); b = nb
end
- local box_dir = get_box_dir(b, 0)
- if box_dir>= dir_node_auto then -- unwrap dir_node
- local p = node_prev(b)
- local dummy1, dummy2, nb = unwrap_dir_node(b, nil, box_dir)
- setfield(p, 'next', nb); tex_nest[tex_nest.ptr].tail = to_node(nb)
- setfield(b, 'next', nil); setfield(b, 'head', nil)
- node_free(b); b = nb
- end
- local _, wh = get_box_dir(b, 0) -- clean dir_node attached to the box
- if wh then
- node.direct.flush_list(getfield('value', wh))
- setfield(wh, 'value', nil)
- end
- end
+ local _, wh = get_box_dir(b, 0) -- clean dir_node attached to the box
+ if wh then
+ node.direct.flush_list(getfield('value', wh))
+ setfield(wh, 'value', nil)
+ end
+ end
end
- stop_time_measure('box_primitive_hook')
+ stop_time_measure 'box_primitive_hook'
end
luatexja.direction.make_dir_whatsit = make_dir_whatsit
@@ -825,55 +813,55 @@ do
setfield(wh, 'value',to_node(db))
end
setfield(db, key, scan_dimen())
- return false
+ return false
else
setfield(s, key, scan_dimen())
- if wh then
- -- change dimension of dir_nodes which are created "automatically"
- local bw, bh, bd
- = getfield(s,'width'), getfield(s, 'height'), getfield(s, 'depth')
- for x in traverse(getfield(wh, 'value')) do
- local x_dir = has_attr(x, attr_dir)
- if x_dir<dir_node_manual then
- local info = dir_node_aux[s_dir][x_dir%dir_node_auto]
- setfield(x, 'width', info.width(bw,bh,bd))
- setfield(x, 'height', info.height(bw,bh,bd))
- setfield(x, 'depth', info.depth(bw,bh,bd))
- end
- end
- end
- return true
+ if wh then
+ -- change dimension of dir_nodes which are created "automatically"
+ local bw, bh, bd
+ = getfield(s,'width'), getfield(s, 'height'), getfield(s, 'depth')
+ for x in traverse(getfield(wh, 'value')) do
+ local x_dir = has_attr(x, attr_dir)
+ if x_dir<dir_node_manual then
+ local info = dir_node_aux[s_dir][x_dir%dir_node_auto]
+ setfield(x, 'width', info.width(bw,bh,bd))
+ setfield(x, 'height', info.height(bw,bh,bd))
+ setfield(x, 'depth', info.depth(bw,bh,bd))
+ end
+ end
+ end
+ return true
end
end
local function set_box_dim(key)
local s = getbox(scan_int()); scan_keyword('=')
if s then
- local l_dir = (get_dir_count())%dir_math_mod
- s = to_direct(s)
+ local l_dir = (get_dir_count())%dir_math_mod
+ s = to_direct(s)
local b_dir = get_box_dir(s,dir_yoko)
if b_dir<dir_node_auto then
set_box_dim_common(key, s, l_dir)
- elseif b_dir%dir_math_mod == l_dir then
- -- s is dir_node
- setfield(s, key, scan_dimen())
- if b_dir<dir_node_manual then
- set_attr(s, attr_dir, b_dir%dir_node_auto + dir_node_manual)
- end
+ elseif b_dir%dir_math_mod == l_dir then
+ -- s is dir_node
+ setfield(s, key, scan_dimen())
+ if b_dir<dir_node_manual then
+ set_attr(s, attr_dir, b_dir%dir_node_auto + dir_node_manual)
+ end
else
- local sid, b = getid(s), getlist(s)
- local info = dir_node_aux[get_box_dir(b,dir_yoko)%dir_math_mod][b_dir%dir_node_auto]
- local bw, bh, bd
- = getfield(b,'width'), getfield(b, 'height'), getfield(b, 'depth')
- local sw, sh, sd
- = getfield(s,'width'), getfield(s, 'height'), getfield(s, 'depth')
- if set_box_dim_common(key, b, l_dir) and b_dir<dir_node_manual then
- -- re-calculate dimension of s, if s is created "automatically"
- if b_dir<dir_node_manual then
- setfield(s, 'width', info.width(bw,bh,bd))
- setfield(s, 'height', info.height(bw,bh,bd))
- setfield(s, 'depth', info.depth(bw,bh,bd))
- end
- end
+ local sid, b = getid(s), getlist(s)
+ local info = dir_node_aux[get_box_dir(b,dir_yoko)%dir_math_mod][b_dir%dir_node_auto]
+ local bw, bh, bd
+ = getfield(b,'width'), getfield(b, 'height'), getfield(b, 'depth')
+ local sw, sh, sd
+ = getfield(s,'width'), getfield(s, 'height'), getfield(s, 'depth')
+ if set_box_dim_common(key, b, l_dir) and b_dir<dir_node_manual then
+ -- re-calculate dimension of s, if s is created "automatically"
+ if b_dir<dir_node_manual then
+ setfield(s, 'width', info.width(bw,bh,bd))
+ setfield(s, 'height', info.height(bw,bh,bd))
+ setfield(s, 'depth', info.depth(bw,bh,bd))
+ end
+ end
end
end
end
@@ -888,11 +876,11 @@ do
s = to_direct(s)
local b_dir = get_box_dir(s, dir_yoko)
if b_dir<dir_node_auto then
- return b_dir
+ return b_dir
else
- local b_dir = get_box_dir(
- node_next(node_next(node_next(getlist(s)))), dir_yoko)
- return b_dir
+ local b_dir = get_box_dir(
+ node_next(node_next(node_next(getlist(s)))), dir_yoko)
+ return b_dir
end
else
return 0
@@ -905,21 +893,21 @@ do
local getbox, setbox, copy_list = tex.getbox, tex.setbox, node.direct.copy_list
-- raise, lower
function luatexja.direction.raise_box()
- start_time_measure('box_primitive_hook')
+ start_time_measure 'box_primitive_hook'
local list_dir = get_dir_count()
- local s = getbox('ltj@afbox')
+ local s = getbox 'ltj@afbox'
if s then
- local sd = to_direct(s)
- local box_dir = get_box_dir(sd, dir_yoko)
- if box_dir%dir_math_mod ~= list_dir then
- setbox(
- 'ltj@afbox',
- to_node(copy_list(make_dir_whatsit(sd, sd, list_dir, 'box_move')))
- -- copy_list しないとリストの整合性が崩れる……?
- )
- end
+ local sd = to_direct(s)
+ local box_dir = get_box_dir(sd, dir_yoko)
+ if box_dir%dir_math_mod ~= list_dir then
+ setbox(
+ 'ltj@afbox',
+ to_node(copy_list(make_dir_whatsit(sd, sd, list_dir, 'box_move')))
+ -- copy_list しないとリストの整合性が崩れる……?
+ )
+ end
end
- stop_time_measure('box_primitive_hook')
+ stop_time_measure 'box_primitive_hook'
end
end
@@ -929,61 +917,61 @@ do
local function glyph_from_packed(h)
local b = getlist(h)
return (getid(b)==id_kern or (getid(b)==id_whatsit and getsubtype(b)==sid_save) )
- and node_next(node_next(node_next(b))) or b
+ and node_next(node_next(node_next(b))) or b
end
luatexja.direction.glyph_from_packed = glyph_from_packed
end
-- adjust
do
- local id_adjust = node.id('adjust')
+ local id_adjust = node.id 'adjust'
function luatexja.direction.check_adjust_direction()
- start_time_measure('box_primitive_hook')
+ start_time_measure 'box_primitive_hook'
local list_dir = get_adjust_dir_count()
local a = tex_nest[tex_nest.ptr].tail
local ad = to_direct(a)
if a and getid(ad)==id_adjust then
- local adj_dir = get_box_dir(ad)
- if list_dir~=adj_dir then
- ltjb.package_error(
- 'luatexja',
- 'Direction Incompatible',
- "\\vadjust's argument and outer vlist must have same direction.")
- node.direct.last_node()
- end
+ local adj_dir = get_box_dir(ad)
+ if list_dir~=adj_dir then
+ ltjb.package_error(
+ 'luatexja',
+ 'Direction Incompatible',
+ "\\vadjust's argument and outer vlist must have same direction.")
+ node.direct.last_node()
+ end
end
- stop_time_measure('box_primitive_hook')
+ stop_time_measure 'box_primitive_hook'
end
end
-- insert
do
- local id_ins = node.id('ins')
- local id_rule = node.id('rule')
+ local id_ins = node.id 'ins'
+ local id_rule = node.id 'rule'
function luatexja.direction.populate_insertion_dir_whatsit()
- start_time_measure('box_primitive_hook')
+ start_time_measure 'box_primitive_hook'
local list_dir = get_dir_count()
local a = tex_nest[tex_nest.ptr].tail
local ad = to_direct(a)
if (not a) or getid(ad)~=id_ins then
- a = node.tail(tex.lists.page_head); ad = to_direct(a)
+ a = node.tail(tex.lists.page_head); ad = to_direct(a)
end
if a and getid(ad)==id_ins then
- local h = getfield(ad, 'head')
- if getid(h)==id_whatsit and
- getsubtype(h)==sid_user and getfield(h, 'user_id')==DIR then
- local n = h; h = node_remove(h,h)
- node_free(n)
- end
- for box_rule in traverse(h) do
- if getid(box_rule)<id_rule then
- h = insert_before(h, box_rule, dir_pool[list_dir]())
- end
- end
- ensure_tex_attr(attr_dir, 0)
- setfield(ad, 'head', h)
+ local h = getfield(ad, 'head')
+ if getid(h)==id_whatsit and
+ getsubtype(h)==sid_user and getfield(h, 'user_id')==DIR then
+ local n = h; h = node_remove(h,h)
+ node_free(n)
+ end
+ for box_rule in traverse(h) do
+ if getid(box_rule)<id_rule then
+ h = insert_before(h, box_rule, dir_pool[list_dir]())
+ end
+ end
+ ensure_tex_attr(attr_dir, 0)
+ setfield(ad, 'head', h)
end
- stop_time_measure('box_primitive_hook')
+ stop_time_measure 'box_primitive_hook'
end
end
@@ -997,50 +985,50 @@ do
local p = to_direct(tex_getbox(n))
split_dir_head = nil
if p then
- local bh = getlist(p)
- if getid(bh)==id_whatsit and getsubtype(bh)==sid_user and getfield(bh, 'user_id')==DIR
- and node_next(bh) then
- ltjs.list_dir = has_attr(bh, attr_dir)
- local q = node_next(p)
- setfield(p, 'head', node_remove(bh,bh,bh))
- split_dir_head = bh
- end
+ local bh = getlist(p)
+ if getid(bh)==id_whatsit and getsubtype(bh)==sid_user and getfield(bh, 'user_id')==DIR
+ and node_next(bh) then
+ ltjs.list_dir = has_attr(bh, attr_dir)
+ local q = node_next(p)
+ setfield(p, 'head', node_remove(bh,bh,bh))
+ split_dir_head = bh
+ end
end
sprint(cat_lp, '\\ltj@@orig@vsplit' .. tostring(n))
- end
+ end
local function dir_adjust_vpack(h, gc)
- start_time_measure('direction_vpack')
+ start_time_measure 'direction_vpack'
local hd = to_direct(h)
if gc=='split_keep' then
- -- supply dir_whatsit
- hd = create_dir_whatsit_vbox(hd, gc)
- split_dir_whatsit = hd
+ -- supply dir_whatsit
+ hd = create_dir_whatsit_vbox(hd, gc)
+ split_dir_whatsit = hd
elseif gc=='split_off' then
- if split_dir_head then
- ltjs.list_dir = has_attr(split_dir_head, attr_dir)
- hd = insert_before(hd, hd, split_dir_head)
- split_dir_head=nil
- end
- if split_dir_whatsit then
- -- adjust direction of 'split_keep'
- set_attr(split_dir_whatsit, attr_dir, ltjs.list_dir)
- end
- split_dir_whatsit=nil
+ if split_dir_head then
+ ltjs.list_dir = has_attr(split_dir_head, attr_dir)
+ hd = insert_before(hd, hd, split_dir_head)
+ split_dir_head=nil
+ end
+ if split_dir_whatsit then
+ -- adjust direction of 'split_keep'
+ set_attr(split_dir_whatsit, attr_dir, ltjs.list_dir)
+ end
+ split_dir_whatsit=nil
elseif gc=='preamble' then
- split_dir_whatsit=nil
+ split_dir_whatsit=nil
else
- adjust_badness(hd)
- -- hd = process_dir_node(create_dir_whatsit_vbox(hd, gc), gc)
- -- done in append_to_vpack callback
- hd = create_dir_whatsit_vbox(hd, gc)
- split_dir_whatsit=nil
+ adjust_badness(hd)
+ -- hd = process_dir_node(create_dir_whatsit_vbox(hd, gc), gc)
+ -- done in append_to_vpack callback
+ hd = create_dir_whatsit_vbox(hd, gc)
+ split_dir_whatsit=nil
end
- stop_time_measure('direction_vpack')
+ stop_time_measure 'direction_vpack'
return to_node(hd)
end
ltjb.add_to_callback('vpack_filter',
- dir_adjust_vpack,
- 'ltj.direction', 10000)
+ dir_adjust_vpack,
+ 'ltj.direction', 10000)
end
do
@@ -1049,16 +1037,16 @@ do
return to_node(create_dir_whatsit_vbox(to_direct(h), gc))
end
ltjb.add_to_callback('pre_output_filter',
- dir_adjust_pre_output,
- 'ltj.direction', 10000)
+ dir_adjust_pre_output,
+ 'ltj.direction', 10000)
function luatexja.direction.remove_end_whatsit()
local h=tex.lists.page_head
if h and (not h.next) and
- h.id==id_whatsit and h.subtype==sid_user and
+ h.id==id_whatsit and h.subtype==sid_user and
h.user_id == DIR then
- tex.lists.page_head = nil
- node.free(h)
+ tex.lists.page_head = nil
+ node.free(h)
end
end
end
@@ -1074,7 +1062,7 @@ do
if getid(b)==id_whatsit and getsubtype(b)==sid_user
and getfield(b, 'user_id')==DIR then
local ob = b; b = node_remove(b,b); setfield(db, 'head', b);
- node_free(ob)
+ node_free(ob)
end
finalize_inner(b)
local w = getfield(b, 'width')
@@ -1105,7 +1093,7 @@ do
db_tail = nn
else
setfield(db, 'head', nn)
- db_head, db_tail = nn, nn
+ db_head, db_tail = nn, nn
end
end
end
@@ -1124,7 +1112,7 @@ do
else
finalize_inner(n)
end
- end
+ end
end
end
local getbox = tex.getbox
@@ -1141,11 +1129,5 @@ do
finalize_inner(shipout_temp)
setbox('global', "AtBeginShipoutBox", copy(getlist(shipout_temp)))
setfield(shipout_temp, 'head',nil)
- -- garbage collect
- --local m = collectgarbage('count')
- --if m>lua_mem_kb+20480 then
- -- collectgarbage(); lua_mem_kb = collectgarbage('count')
- --end
- --print('Lua Memory Usage', lua_mem_kb)
end
end
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-inputbuf.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-inputbuf.lua
index 0616f4e50c4..6423f8817a5 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltj-inputbuf.lua
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-inputbuf.lua
@@ -2,16 +2,16 @@
-- ltj-inputbuf.lua
--
-luatexja.load_module('base'); local ltjb = luatexja.base
-luatexja.load_module('charrange'); local ltjc = luatexja.charrange
+luatexja.load_module 'base'; local ltjb = luatexja.base
+luatexja.load_module 'charrange'; local ltjc = luatexja.charrange
-require("unicode")
+require "unicode"
local utflen = utf.len
local utfbyte = utf.byte
local utfchar = utf.char
local node_new = node.new
local node_free = node.free
-local id_glyph = node.id('glyph')
+local id_glyph = node.id 'glyph'
local getcatcode, getcount = tex.getcatcode, tex.getcount
local ltjc_is_japanese_char_curlist = ltjc.is_japanese_char_curlist
@@ -22,31 +22,30 @@ local time_line = 0
local start_time_measure, stop_time_measure
= ltjb.start_time_measure, ltjb.stop_time_measure
local function add_comment(buffer)
- start_time_measure('inputbuf')
+ start_time_measure 'inputbuf'
local i = utflen(buffer)
while (i>0) and (getcatcode(utfbyte(buffer, i))==1
- or getcatcode(utfbyte(buffer, i))==2) do
+ or getcatcode(utfbyte(buffer, i))==2) do
i=i-1
end
if i>0 then
local c = utfbyte(buffer, i)
if c>=0x80 then
- local te = tex.endlinechar
- -- Is the catcode of endline character is 5 (end-of-line)?
- if (te ~= -1) and (getcatcode(te)==5) then
- local ct = getcatcode(c)
- if (ct==11) or (ct==12) then
- local lec = getcount('ltjlineendcomment')
+ local te = tex.endlinechar
+ -- Is the catcode of endline character is 5 (end-of-line)?
+ if (te ~= -1) and (getcatcode(te)==5) then
+ local ct = getcatcode(c)
+ if (ct==11) or (ct==12) then
+ local lec = getcount 'ltjlineendcomment'
-- Is the catcode of \ltjlineendcomment (new comment char) is 14 (comment)?
- if ltjc_is_japanese_char_curlist(c) and (getcatcode(lec)==14) then
- stop_time_measure('inputbuf')
- return buffer .. utfchar(lec)
+ if ltjc_is_japanese_char_curlist(c) and (getcatcode(lec)==14) then
+ stop_time_measure 'inputbuf'; return buffer .. utfchar(lec)
end
- end
+ end
end
end
end
- stop_time_measure('inputbuf')
+ stop_time_measure 'inputbuf'
return buffer
end
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-ivd_aj1.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-ivd_aj1.lua
index 424b1ef472d..4ed4e5a512d 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltj-ivd_aj1.lua
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-ivd_aj1.lua
@@ -1,5 +1,6 @@
+local f = false
return {
-version = 2,
+version = 3,
table_ivd_aj1 = {
-- # IVD_Sequences
-- #
@@ -36,23061 +37,2310 @@ table_ivd_aj1 = {
-- # For terms of use, see: http://www.unicode.org/terms_of_use.html
-- #
-- # EOF
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- 2117341,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- 2117276,
- 2118934,
- 2120195,
- 2135615,
- 2118848,
- 2122011,
- 2122536,
- 2120182,
- 2134050,
- 2131061,
- 2130716,
- 2128464,
- 2121898,
- 2122721,
- 2125349,
- 2123245,
- 2131046,
- 2130598,
- 2137077,
- 2123923,
- 2119463,
- 2123169,
- 2122353,
- 2120603,
- 2120144,
- 2131579,
- 2136308,
- 2129250,
- 2129342,
- 2136974,
- 2122262,
- 2129055,
- 2132151,
- 2120585,
- 2121397,
- 2122505,
- 2123415,
- 2123848,
- 2135495,
- 2135949,
- 2123599,
- 2117349,
- 2117386,
- 2117453,
- 2117533,
- 2117705,
- 2119410,
- 2119991,
- 2120148,
- 2120193,
- 2120713,
- 2121951,
- 2121999,
- 2122096,
- 2123283,
- 2124037,
- 2126010,
- 2127183,
- 2127216,
- 2128379,
- 2129325,
- 2129391,
- 2130115,
- 2130958,
- 2132067,
- 2132738,
- 2134101,
- 2134138,
- 2118459,
- 2117269,
- 2117285,
- 2119647,
- 2130098,
- 2134209,
- 2128111,
- 2117120,
- 2119921,
- 2125474,
- 2134072,
- 2128434,
- 2130728,
- 2130571,
- 2137135,
- 2117953,
- 2118512,
- 2118845,
- 2118881,
- 2119392,
- 2120187,
- 2121493,
- 2136306,
- 2125291,
- 2130148,
- 2131245,
- 2135650,
- 2135664,
- 2135712,
- 2136059,
- 2118667,
- 2118643,
- 2120583,
- 2126031,
- 4227005,
- 2133954,
- 2135784,
- 2118511,
- 2137436,
- 2128570,
- 2117137,
- 2128019,
- 2130428,
- 2125350,
- 2119192,
- 2118916,
- 2124573,
- 2131226,
- 2137147,
- 2120165,
- 2118569,
- 2125158,
- 2127068,
- 2135439,
- 2119234,
- 2117265,
- 2134091,
- 2135794,
- 2130767,
- 2136332,
- 2118625,
- 2119094,
- 2120496,
- 2121585,
- 2123296,
- 2123507,
- 2123780,
- 2124856,
- 2125043,
- 2125097,
- 2126939,
- 2127560,
- 2128462,
- 2136116,
- 2130673,
- 2132059,
- 2132576,
- 2134765,
- 2125234,
- 2127275,
- 2127562,
- 2136517,
- 2121894,
- 4229889,
- 2133386,
- 2135474,
- 2124174,
- 2118573,
- 2118022,
- 2119442,
- 2119728,
- 2120004,
- 2120628,
- 2121462,
- 2121768,
- 2122665,
- 2122740,
- 4222143,
- 2125588,
- 2125966,
- 2126100,
- 2126169,
- 2126293,
- 2126655,
- 2129409,
- 2130550,
- 2130641,
- 2131351,
- 2134112,
- 2134619,
- 2137371,
- 2119785,
- 2123196,
- 2124890,
- 2127141,
- 2118137,
- 2119982,
- 2120037,
- 2121600,
- 2121692,
- 2122428,
- 2123258,
- 2124330,
- 2124583,
- 2124724,
- 2126731,
- 2129857,
- 2132310,
- 2137388,
- 2137358,
- 2137796,
- 2120865,
- 2124950,
- 2130811,
- 2117892,
- 2120779,
- 2122166,
- 2130374,
- 2123894,
- 2126433,
- 2117209,
- 2117626,
- 2118520,
- 2121833,
- 2125353,
- 2128463,
- 2136051,
- 2117131,
- 2118422,
- 2117358,
- 2117461,
- 2117437,
- 2117537,
- 2117491,
- 2118304,
- 2118639,
- 2119177,
- 2119951,
- 2120385,
- 2120630,
- 2120673,
- 2128337,
- 2123399,
- 2123676,
- 2123702,
- 2124620,
- 2124979,
- 2125931,
- 2126786,
- 4225421,
- 2128318,
- 2128444,
- 2128775,
- 2130609,
- 2130651,
- 2130692,
- 2130807,
- 2130927,
- 2130899,
- 2131814,
- 2132658,
- 2119209,
- 2133160,
- 2133990,
- 2134094,
- 2135838,
- 2131594,
- 2117572,
- 2120936,
- 2122257,
- 2126425,
- 2127163,
- 2130405,
- 4227773,
- 2131710,
- 2133184,
- 2135749,
- 2136339,
- 2136533,
- 2117323,
- 2117402,
- 2132451,
- 2119390,
- 2119754,
- 2119882,
- 2121467,
- 2121707,
- 2121770,
- 4219028,
- 2121826,
- 2122192,
- 2122258,
- 2122448,
- 2123065,
- 2136897,
- 2123366,
- 2123952,
- 4222327,
- 2125936,
- 2127180,
- 2127494,
- 2129269,
- 2130597,
- 2131961,
- 2135435,
- 2135694,
- 2133149,
- 2118129,
- 2118334,
- 2119958,
- 2118835,
- 2120627,
- 2120982,
- 2122088,
- 2124162,
- 2125231,
- 2128013,
- 2131147,
- 2132055,
- 2132594,
- 2134951,
- 2136760,
- 2125164,
- 2136488,
- 2131673,
- 2119587,
- 2123775,
- 2131662,
- 2134542,
- 2118275,
- 2119303,
- 2118660,
- 2121427,
- 2122465,
- 2122937,
- 2123836,
- 2123832,
- 2124731,
- 2126706,
- 2128058,
- 2128491,
- 2132378,
- 4229586,
- 2133355,
- 2133763,
- 2134253,
- 2135459,
- 2135700,
- 2135913,
- 2120550,
- 2120883,
- 2124157,
- 2136141,
- 2136142,
- 2122651,
- 2128672,
- 2124331,
- 2124415,
- 2123958,
- 2137101,
- 2125663,
- 4215410,
- 2119069,
- 2121840,
- 2122476,
- 2125115,
- 2125319,
- 2125521,
- 2131035,
- 2132240,
- 2133828,
- 2117140,
- 2137145,
- 2118646,
- 2124059,
- 2124346,
- 2135940,
- 2123818,
- 2117980,
- 2128579,
- 2131122,
- 2134492,
- 2134924,
- 2119259,
- 2137384,
- 2123810,
- 2130693,
- 2130993,
- 2129061,
- 2118152,
- 2130629,
- 2127078,
- 2117246,
- 2117507,
- 2118048,
- 2120658,
- 2118154,
- 2118360,
- 2118375,
- 2121211,
- 2119066,
- 2119722,
- 2120166,
- 2120588,
- 2120600,
- 2120667,
- 2121330,
- 2121337,
- 2121891,
- 2122015,
- 2122083,
- 2122174,
- 2122715,
- 2123106,
- 2123729,
- 2123859,
- 2124026,
- 2124606,
- 2124627,
- 2124887,
- 2125602,
- 2125719,
- 2125637,
- 2127024,
- 2127128,
- 2127587,
- 2127627,
- 2128639,
- 2128801,
- 2128929,
- 2129385,
- 2129718,
- 2129904,
- 2130077,
- 2130534,
- 2130846,
- 2132403,
- 2132684,
- 2133163,
- 2134148,
- 2135121,
- 2135443,
- 2135441,
- 2135458,
- 2135653,
- 2136019,
- 2136360,
- 2130456,
- 2117176,
- 2118699,
- 2120888,
- 2121164,
- 2126761,
- 2127436,
- 2127676,
- 2120873,
- 2129899,
- 2133259,
- 2135745,
- 2136081,
- 2136148,
- 2136152,
- 2117377,
- 2117390,
- 2118513,
- 2119068,
- 2119272,
- 2119674,
- 2120007,
- 2120457,
- 2120644,
- 2120848,
- 2121228,
- 2121342,
- 2121676,
- 2122734,
- 2123578,
- 2123223,
- 4220386,
- 2123551,
- 2123979,
- 2123972,
- 2124383,
- 2121264,
- 2124741,
- 2124823,
- 2124925,
- 2127231,
- 4225352,
- 2120547,
- 2128384,
- 2129152,
- 2121661,
- 2132367,
- 2132504,
- 2133172,
- 2133367,
- 2133708,
- 2133789,
- 2136290,
- 2136590,
- 2136892,
- 2117248,
- 2117757,
- 2117888,
- 2120083,
- 2120604,
- 2122287,
- 2122368,
- 2122988,
- 2124602,
- 2126496,
- 2127249,
- 2128199,
- 2129833,
- 2131963,
- 2132668,
- 2132848,
- 2122668,
- 2130890,
- 2135968,
- 2118665,
- 2118659,
- 2119083,
- 2123860,
- 2124376,
- 2132592,
- 2127911,
- 2123637,
- 2137805,
- 2118516,
- 2120610,
- 2130202,
- 2131536,
- 2134022,
- 2117144,
- 2117189,
- 2117319,
- 2117393,
- 2118602,
- 2118712,
- 2120622,
- 2121491,
- 2121765,
- 2123089,
- 2123581,
- 2124866,
- 2124914,
- 2125027,
- 2125944,
- 2126851,
- 2128502,
- 2128558,
- 2128648,
- 2129178,
- 2129150,
- 2129254,
- 2123239,
- 2126427,
- 2118587,
- 2120773,
- 2121192,
- 2122450,
- 2122464,
- 2122521,
- 2125344,
- 2131546,
- 2132529,
- 2133469,
- 2134776,
- 2125569,
- 2128294,
- 2136922,
- 2117288,
- 2117291,
- 2117292,
- 2117531,
- 2117536,
- 2117841,
- 2117959,
- 2128630,
- 2118001,
- 2118134,
- 2118484,
- 2118433,
- 4215679,
- 2118635,
- 2119084,
- 2119811,
- 2120929,
- 2121527,
- 2121546,
- 2121775,
- 2121808,
- 2121837,
- 2122527,
- 2123097,
- 2124363,
- 2124993,
- 2126530,
- 2126573,
- 2127855,
- 2130168,
- 2130181,
- 2130440,
- 2131278,
- 2134263,
- 2135009,
- 2136063,
- 2136407,
- 2136666,
- 2117360,
- 2118109,
- 2120749,
- 2123393,
- 2124141,
- 2120768,
- 2123506,
- 2124149,
- 2126729,
- 2123856,
- 2129025,
- 2117829,
- 2118372,
- 2119495,
- 2121214,
- 2134822,
- 2123172,
- 2124579,
- 2124605,
- 2126900,
- 2128257,
- 2128317,
- 2128715,
- 2129354,
- 2130617,
- 2130892,
- 2132095,
- 2132319,
- 4229945,
- 2133969,
- 2134481,
- 2118687,
- 2134656,
- 2117213,
- 2117686,
- 2118629,
- 2118458,
- 2126551,
- 2126742,
- 2127849,
- 2130662,
- 2133679,
- 2136518,
- 2136520,
- 2136530,
- 2118007,
- 2122010,
- 2131550,
- 2119088,
- 2128506,
- 2117750,
- 2120659,
- 2134087,
- 2135685,
- 2117170,
- 4221659,
- 2134503,
- 2120785,
- 2120776,
- 2122648,
- 2128543,
- 2124947,
- 2135924,
- 2133857,
- 2128554,
- 2126218,
- 2135688,
- 2129026,
- 2123799,
- 2129520,
- 2123857,
- 2134892,
- 2118386,
- 2118683,
- 2131371,
- 2132499,
- 2129828,
- 2133709,
- 2134241,
- 2118502,
- 2132104,
- 2128193,
- 2117570,
- 2117822,
- 2118161,
- 2117956,
- 2118995,
- 2119469,
- 2126826,
- 2119563,
- 2120017,
- 2121570,
- 2121604,
- 2121845,
- 2122102,
- 2122087,
- 2122153,
- 2122674,
- 2122810,
- 2123116,
- 2123375,
- 2123842,
- 2125331,
- 2127206,
- 2128445,
- 2129147,
- 2129228,
- 2129305,
- 2129483,
- 2129771,
- 2130702,
- 2130762,
- 2131661,
- 2132488,
- 2132579,
- 2132838,
- 2133757,
- 2136090,
- 2137487,
- 2130616,
- 2133966,
- 2137064,
- 2118279,
- 2122271,
- 2122883,
- 2125760,
- 2135705,
- 2123841,
- 2117777,
- 2124576,
- 2124922,
- 2125652,
- 2128500,
- 2129232,
- 2132032,
- 2132515,
- 2123528,
- 2117366,
- 2117689,
- 2117670,
- 2117733,
- 2118012,
- 2118200,
- 2118243,
- 2119079,
- 2119439,
- 2119685,
- 2120396,
- 2121466,
- 2122162,
- 2122232,
- 2122483,
- 2122610,
- 2124060,
- 2124329,
- 2126461,
- 2126508,
- 2126638,
- 2127892,
- 2127983,
- 2129273,
- 2127628,
- 2130089,
- 2132363,
- 2132761,
- 2133218,
- 2133714,
- 2134115,
- 2134901,
- 2135674,
- 2136149,
- 2136595,
- 2137720,
- 2117955,
- 2118559,
- 2118579,
- 2121339,
- 2121510,
- 2125339,
- 2125456,
- 2126724,
- 2126846,
- 2129219,
- 2130487,
- 2132480,
- 2132730,
- 2135632,
- 2117198,
- 2117643,
- 2118628,
- 2118780,
- 2119418,
- 2120145,
- 2120548,
- 2121201,
- 2121387,
- 2121511,
- 2122296,
- 2123077,
- 2123695,
- 2125398,
- 2126544,
- 2129098,
- 2132148,
- 2130081,
- 2130145,
- 2130928,
- 2131534,
- 2132615,
- 2133480,
- 2134583,
- 2135751,
- 2136167,
- 2137875,
- 2117268,
- 2117266,
- 2117389,
- 2118472,
- 2118729,
- 2118718,
- 2120239,
- 2121612,
- 2121633,
- 2121887,
- 2123943,
- 2124430,
- 2126938,
- 2128001,
- 2132638,
- 2132644,
- 2132855,
- 2134416,
- 2117214,
- 2137033,
- 2117284,
- 2117500,
- 2117551,
- 2117657,
- 2117654,
- 2117961,
- 2117996,
- 2118303,
- 2118329,
- 2118398,
- 2118554,
- 2118627,
- 2118673,
- 2118670,
- 2119049,
- 2119505,
- 2119586,
- 2120061,
- 2120532,
- 2120541,
- 2120591,
- 2121189,
- 2121191,
- 2121207,
- 2121336,
- 2121347,
- 2121370,
- 2121399,
- 2121496,
- 2121810,
- 2122060,
- 2122391,
- 2122456,
- 2122663,
- 2123067,
- 2123266,
- 2123331,
- 2123508,
- 2123629,
- 2123809,
- 2123927,
- 2124235,
- 2124895,
- 2125098,
- 2125161,
- 2125359,
- 2125469,
- 2127154,
- 2127495,
- 2127980,
- 2128447,
- 2129120,
- 2129157,
- 2129176,
- 2129246,
- 2129329,
- 2129941,
- 2129923,
- 2130095,
- 2130097,
- 2130260,
- 2130319,
- 2130474,
- 2130770,
- 2132044,
- 2132065,
- 2132763,
- 2133154,
- 2133244,
- 2134218,
- 2134389,
- 2134641,
- 2127935,
- 2134780,
- 2135460,
- 2135629,
- 2136069,
- 2136473,
- 2136792,
- 2137403,
- 2118235,
- 2118315,
- 2118647,
- 2118664,
- 2119893,
- 2122487,
- 2125792,
- 2133098,
- 2133855,
- 2137785,
- 2117963,
- 2118203,
- 2118730,
- 2119421,
- 4225600,
- 2134391,
- 2137440,
- 2137810,
- 2126660,
- 2125577,
- 2130288,
- 2127121,
- 2121725,
- 2121946,
- 2136744,
- 2126555,
- 2133948,
- 2124644,
- 2136067,
- 2117322,
- 2119408,
- 2119524,
- 2119870,
- 2120282,
- 2121832,
- 2122183,
- 2123279,
- 2123270,
- 2123833,
- 2123953,
- 2125303,
- 2127317,
- 2129210,
- 2130542,
- 2136898,
- 2117275,
- 2117456,
- 2118601,
- 2118918,
- 2121071,
- 2121190,
- 2121198,
- 2123771,
- 2124953,
- 2126963,
- 2127874,
- 2132560,
- 2134934,
- 2132191,
- 2119504,
- 2121383,
- 2122539,
- 2117813,
- 2117804,
- 4215181,
- 2123520,
- 2118857,
- 2119774,
- 2120123,
- 2120624,
- 2121577,
- 2122317,
- 2122657,
- 2123837,
- 2124659,
- 2125320,
- 2125949,
- 2134471,
- 2126464,
- 2127893,
- 2127910,
- 2128237,
- 2123150,
- 2129200,
- 2130908,
- 2132161,
- 2133769,
- 2135707,
- 2118244,
- 2119464,
- 2123600,
- 2129770,
- 2133153,
- 2118068,
- 2119490,
- 2135594,
- 2119738,
- 2124170,
- 2130100,
- 2118834,
- 2120974,
- 2119676,
- 2128021,
- 2137594,
- 2117468,
- 2118218,
- 2118795,
- 2122814,
- 2123304,
- 2123540,
- 2123765,
- 2128516,
- 2128726,
- 2129186,
- 2134831,
- 2123868,
- 2137005,
- 2128697,
- 2118425,
- 2118026,
- 2118199,
- 2120671,
- 2122486,
- 2122926,
- 2122982,
- 2123565,
- 4221882,
- 2131369,
- 2135761,
- 2127504,
- 2137046,
- 2122572,
- 2134790,
- 2137003,
- 2127551,
- 2123346,
- 2117129,
- 2117784,
- 2118594,
- 2120817,
- 2121960,
- 2122898,
- 2123107,
- 2123871,
- 2126310,
- 2126794,
- 2127139,
- 2128791,
- 2129538,
- 2131605,
- 2132867,
- 2133211,
- 2134392,
- 2136336,
- 2123180,
- 2123435,
- 2124683,
- 2117333,
- 2117332,
- 2117434,
- 2117503,
- 2118202,
- 2118648,
- 2118642,
- 2119139,
- 2119387,
- 2119915,
- 2120139,
- 2120137,
- 2120191,
- 2120528,
- 2120781,
- 2121218,
- 2121259,
- 2121687,
- 2121757,
- 2122503,
- 2123055,
- 2120540,
- 2123183,
- 2123197,
- 2123240,
- 2123677,
- 2124642,
- 2124667,
- 2124815,
- 2126661,
- 2128201,
- 2128321,
- 2129144,
- 2129177,
- 2129195,
- 2130082,
- 2130178,
- 2130419,
- 2132374,
- 2132574,
- 2132585,
- 2132582,
- 2132620,
- 2132718,
- 2133191,
- 2133212,
- 2135756,
- 2136316,
- 2124655,
- 2117259,
- 2117436,
- 2117517,
- 2117968,
- 2120535,
- 2120698,
- 2122056,
- 2122497,
- 2123330,
- 2124577,
- 2125515,
- 2124987,
- 2126398,
- 2127037,
- 2127316,
- 2128065,
- 4225338,
- 2129932,
- 2129971,
- 2130410,
- 2131092,
- 2133918,
- 2124880,
- 2137727,
- 2121487,
- 2132824,
- 2137387,
- 2128634,
- 2133752,
- 2120589,
- 2135787,
- 2117123,
- 2118641,
- 2119671,
- 2119985,
- 2120393,
- 2120612,
- 2121865,
- 2125439,
- 2125574,
- 2127294,
- 2133226,
- 2120607,
- 2131200,
- 2128864,
- 2117746,
- 2123764,
- 2130589,
- 2120801,
- 2131274,
- 2129438,
- 2130446,
- 2118041,
- 2120708,
- 2122600,
- 2133350,
- 2123164,
- 4223342,
- 2128190,
- 2129175,
- 2129925,
- 2132765,
- 2133706,
- 2134126,
- 2131655,
- 2134186,
- 2117663,
- 4215546,
- 2120762,
- 2123603,
- 2125948,
- 4223541,
- 2134348,
- 2134472,
- 2134827,
- 2130661,
- 2120642,
- 2121521,
- 2121977,
- 2117179,
- 2118614,
- 2120584,
- 2122315,
- 2123569,
- 2124682,
- 2126569,
- 2126816,
- 2128430,
- 2130283,
- 2133411,
- 2134354,
- 2136470,
- 2117906,
- 2118615,
- 2118762,
- 2120703,
- 2122632,
- 2124345,
- 2129324,
- 2135808,
- 2119386,
- 2118606,
- 4215912,
- 2120599,
- 2120753,
- 2121182,
- 2117614,
- 2121985,
- 2122494,
- 2125106,
- 2128320,
- 2128331,
- 2129218,
- 2129485,
- 2129874,
- 2130413,
- 2130463,
- 2131088,
- 2132038,
- 2132338,
- 2132880,
- 2133620,
- 2133807,
- 2134065,
- 2134347,
- 2134380,
- 2135750,
- 2134428,
- 2117312,
- 2117455,
- 2117957,
- 2118465,
- 2121619,
- 2122254,
- 2123732,
- 2124865,
- 2125323,
- 2126691,
- 2129446,
- 2134477,
- 2134659,
- 2118612,
- 2119961,
- 2120639,
- 2125265,
- 4225373,
- 2129454,
- 2129051,
- 2119806,
- 2126239,
- 2118138,
- 2132051,
- 2134000,
- 2117578,
- 2120955,
- 2123301,
- 2127788,
- 2128611,
- 2130460,
- 2136575,
- 2118086,
- 2121642,
- 2123244,
- 2124143,
- 2124681,
- 2125299,
- 2125462,
- 2125668,
- 2127614,
- 2129172,
- 2121185,
- 2134133,
- 2134407,
- 2136070,
- 2118118,
- 2118173,
- 2122304,
- 2123409,
- 2123481,
- 4222490,
- 2121398,
- 2129362,
- 4226930,
- 2123512,
- 2131375,
- 2131447,
- 4229880,
- 2118313,
- 2118617,
- 2120051,
- 2121359,
- 2121616,
- 2121813,
- 2134756,
- 2135652,
- 2117815,
- 2117919,
- 2118365,
- 2118432,
- 2118471,
- 2118636,
- 2118888,
- 2118982,
- 2118961,
- 2119191,
- 2120040,
- 2120126,
- 2120252,
- 2120629,
- 4217862,
- 2120719,
- 2120721,
- 2120730,
- 2121348,
- 2121354,
- 2121440,
- 2121584,
- 2122367,
- 2122372,
- 2122459,
- 2122636,
- 2122615,
- 2123271,
- 2123276,
- 2123309,
- 2123382,
- 2123646,
- 2123938,
- 2124319,
- 2124341,
- 2124988,
- 2125192,
- 2125321,
- 2125400,
- 2126140,
- 2126118,
- 2126183,
- 2127303,
- 2127617,
- 2127965,
- 2128129,
- 4225381,
- 2128368,
- 2128608,
- 2128657,
- 2129063,
- 2129209,
- 2130070,
- 2130902,
- 2131083,
- 2131273,
- 2132061,
- 2132211,
- 2132511,
- 2132540,
- 2132564,
- 2132595,
- 2133089,
- 2133214,
- 2134436,
- 2134630,
- 2134910,
- 2135064,
- 2135708,
- 2135960,
- 2117130,
- 2117128,
- 2117150,
- 2117207,
- 2118039,
- 2118256,
- 4216782,
- 2119732,
- 2119884,
- 2120482,
- 2121272,
- 2121925,
- 2123006,
- 2123617,
- 2123606,
- 2125124,
- 2126518,
- 2127219,
- 2128483,
- 2131128,
- 2132850,
- 2134456,
- 2134816,
- 2119217,
- 2119668,
- 2136318,
- 2122477,
- 2124045,
- 2124694,
- 2126317,
- 2129492,
- 2130039,
- 2130546,
- 2132454,
- 2136287,
- 2131797,
- 2133937,
- 2120763,
- 2117432,
- 2117601,
- 2117557,
- 2118919,
- 2120224,
- 2120669,
- 2120681,
- 2121667,
- 2122062,
- 2122543,
- 2123184,
- 2123339,
- 2124014,
- 2124187,
- 2125176,
- 2125297,
- 2127155,
- 2127289,
- 2127647,
- 4225374,
- 2128358,
- 2129203,
- 2130403,
- 2130607,
- 2131370,
- 2132394,
- 2132538,
- 2133675,
- 2133915,
- 2134066,
- 2134493,
- 2135815,
- 2117306,
- 2117313,
- 2118147,
- 2119797,
- 2119916,
- 2120715,
- 2127130,
- 2120765,
- 2130254,
- 2132490,
- 2133957,
- 2135651,
- 2135917,
- 2128677,
- 2132687,
- 2136072,
- 2134370,
- 2119411,
- 2118568,
- 2134039,
- 2118713,
- 2119554,
- 2121253,
- 2122664,
- 2124852,
- 2125962,
- 2127713,
- 2129035,
- 2129888,
- 2132080,
- 2134082,
- 2134356,
- 2134800,
- 2134808,
- 2135695,
- 2126942,
- 2136772,
- 2120967,
- 2121065,
- 2123120,
- 2123682,
- 2133416,
- 2135771,
- 2122606,
- 2123593,
- 2124057,
- 2130885,
- 2136087,
- 2135744,
- 2132222,
- 2125700,
- 2122874,
- 2120696,
- 2117142,
- 2125868,
- 2127197,
- 2123311,
- 2118084,
- 2118198,
- 2118370,
- 2120147,
- 2121601,
- 2121767,
- 2122256,
- 2123071,
- 2123124,
- 2123295,
- 4220532,
- 2124018,
- 2123798,
- 2124643,
- 2125317,
- 2126450,
- 2127135,
- 2127579,
- 4226238,
- 2130006,
- 2119920,
- 2132221,
- 2132351,
- 2132640,
- 2132627,
- 2132683,
- 2134045,
- 2134418,
- 2135890,
- 2135897,
- 2123145,
- 2128398,
- 2130182,
- 2135739,
- 2121261,
- 2121948,
- 2122266,
- 2123173,
- 2123284,
- 2123664,
- 2127859,
- 2128461,
- 2128973,
- 2129470,
- 2130186,
- 2133164,
- 2133348,
- 2133473,
- 2133599,
- 2128041,
- 2118151,
- 2122457,
- 2122661,
- 2122818,
- 2122392,
- 2132525,
- 2128515,
- 2128832,
- 2132652,
- 2135786,
- 2129270,
- 2130444,
- 2131785,
- 2117337,
- 2117960,
- 2118467,
- 2118496,
- 2120611,
- 2120706,
- 2120726,
- 2121181,
- 2122278,
- 2122311,
- 2122928,
- 2123795,
- 2123828,
- 2125001,
- 2125125,
- 2125079,
- 2123731,
- 2125660,
- 2126158,
- 2126205,
- 2123211,
- 2128511,
- 2128813,
- 2129370,
- 2129482,
- 2129832,
- 2130298,
- 2130459,
- 2130489,
- 2131366,
- 2132590,
- 2133198,
- 2133493,
- 2134136,
- 2134135,
- 2134701,
- 2134673,
- 2135427,
- 2137006,
- 2118221,
- 2119044,
- 2125624,
- 2126134,
- 2117992,
- 2128261,
- 2129493,
- 2130355,
- 2129102,
- 2119244,
- 2119761,
- 2120872,
- 2122666,
- 2123518,
- 2123517,
- 2124122,
- 2126553,
- 2127247,
- 2127246,
- 2128142,
- 2128214,
- 2128351,
- 2129047,
- 2129184,
- 2129220,
- 2131463,
- 2132532,
- 2135611,
- 2134113,
- 2137888,
- 2117863,
- 2118261,
- 2118604,
- 2118626,
- 2117641,
- 2119082,
- 2119918,
- 2120015,
- 2126397,
- 2120587,
- 2120804,
- 2118429,
- 2121955,
- 2121971,
- 2122588,
- 2122627,
- 2122559,
- 2122683,
- 2122957,
- 2123241,
- 2123513,
- 2121187,
- 2124237,
- 2124285,
- 2125589,
- 2126309,
- 2117257,
- 2127337,
- 2127608,
- 2128531,
- 2129119,
- 2129359,
- 2129308,
- 2130017,
- 2130761,
- 2130776,
- 2131052,
- 2131132,
- 2131451,
- 2132165,
- 2133360,
- 2134017,
- 2134125,
- 2134935,
- 2135836,
- 2136594,
- 2117839,
- 2119831,
- 4219278,
- 2130387,
- 2131253,
- 2133256,
- 2134048,
- 2117571,
- 2117748,
- 2118215,
- 2118515,
- 2121839,
- 2122569,
- 2123615,
- 2125356,
- 2133427,
- 2134047,
- 2117591,
- 2120798,
- 2133194,
- 2123215,
- 2129306,
- 2118482,
- 2132118,
- 2118006,
- 2122691,
- 2120536,
- 2120555,
- 2120714,
- 2122765,
- 2123601,
- 2134108,
- 2117334,
- 2119962,
- 2119978,
- 2124912,
- 2132561,
- 2118974,
- 2119701,
- 2120101,
- 2121968,
- 2122323,
- 2123713,
- 2130485,
- 2124117,
- 2135616,
- 2136516,
- 2136616,
- 2117459,
- 2119686,
- 2120702,
- 2129936,
- 2120881,
- 2121263,
- 2121605,
- 2121760,
- 2122059,
- 2122292,
- 2123519,
- 2125040,
- 2125534,
- 2130126,
- 2130303,
- 2130644,
- 2132107,
- 2133176,
- 2134016,
- 2134062,
- 2135690,
- 2137819,
- 2137051,
- 2117347,
- 2118640,
- 2119975,
- 2128684,
- 2134413,
- 2136140,
- 2137593,
- 2125533,
- 2125863,
- 2118483,
- 2118980,
- 2120581,
- 2122328,
- 2122398,
- 2122451,
- 2124962,
- 2125807,
- 4224034,
- 2132503,
- 2135096,
- 2125761,
- 2132734,
- 2130744,
- 2118119,
- 2131704,
- 2118634,
- 2118633,
- 2117446,
- 2134100,
- 2133936,
- 2120042,
- 2130225,
- 4218365,
- 2128618,
- 2133951,
- 2123994,
- 2133047,
- 2126584,
- 2137160,
- 2124349,
- 2132656,
- 2117177,
- 2118488,
- 4216326,
- 2119526,
- 2122437,
- 2122658,
- 2123238,
- 2124622,
- 2125281,
- 2125403,
- 2125997,
- 2127853,
- 2128623,
- 2128810,
- 2129339,
- 2129981,
- 2130118,
- 2131659,
- 2132629,
- 2134875,
- 2119395,
- 2119879,
- 2121534,
- 2123181,
- 2123414,
- 2124416,
- 2124725,
- 2127159,
- 2132679,
- 2117668,
- 2127845,
- 2119472,
- 2121499,
- 2121829,
- 2123386,
- 2124896,
- 2127348,
- 2128410,
- 2129774,
- 2130420,
- 2131736,
- 2134085,
- 2136499,
- 2128841,
- 2127196,
- 2128633,
- 2128721,
- 2131140,
- 2134032,
- 2128361,
- 2128530,
- 2130742,
- 2120417,
- 2127680,
- 2117165,
- 2117362,
- 2120601,
- 2121696,
- 2122429,
- 2123324,
- 2123761,
- 2125032,
- 2131563,
- 2132087,
- 2132539,
- 2134350,
- 2134771,
- 2136528,
- 2124311,
- 2125862,
- 4223786,
- 2130663,
- 2131031,
- 2133167,
- 2117121,
- 2117958,
- 2118091,
- 2119051,
- 2120693,
- 2121238,
- 2121267,
- 2121345,
- 2121492,
- 2121525,
- 2121579,
- 2121652,
- 2122226,
- 2122513,
- 2123426,
- 2123549,
- 4222830,
- 2126418,
- 2127162,
- 2127674,
- 2130036,
- 2130233,
- 2130296,
- 2131830,
- 2132671,
- 2132700,
- 2133381,
- 2133491,
- 2134682,
- 2135415,
- 2136066,
- 2137317,
- 2118341,
- 2122583,
- 2127604,
- 2123541,
- 2124936,
- 2126797,
- 2133187,
- 2134958,
- 2135667,
- 2125093,
- 2119836,
- 2124046,
- 2124236,
- 2134013,
- 2134938,
- 2127323,
- 2134042,
- 2119770,
- 2123778,
- 2122676,
- 2124283,
- 2117443,
- 2125612,
- 2123736,
- 2133947,
- 2131238,
- 2129332,
- 2134868,
- 2124095,
- 2125680,
- 2119530,
- 2119927,
- 2120492,
- 2129196,
- 2126378,
- 2118666,
- 2134499,
- 4234676,
- 2117293,
- 2117454,
- 2117724,
- 2117749,
- 2118211,
- 2133150,
- 2118728,
- 2119716,
- 2120602,
- 2121245,
- 2121365,
- 2121389,
- 2121463,
- 2121503,
- 2121868,
- 2122421,
- 2122554,
- 2122704,
- 2123951,
- 2124864,
- 2128007,
- 2128270,
- 2128395,
- 2129376,
- 2130503,
- 2132482,
- 2132710,
- 2133572,
- 2134035,
- 2134200,
- 2134317,
- 2134488,
- 2137870,
- 2125029,
- 2122840,
- 2122978,
- 2123125,
- 2125556,
- 2127492,
- 2128667,
- 2134121,
- 2134993,
- 2125498,
- 2118898,
- 2121657,
- 2122916,
- 2133837,
- 2133997,
- 2134596,
- 2118008,
- 2119787,
- 2119977,
- 2120789,
- 2121367,
- 2125307,
- 2129551,
- 2127132,
- 2133180,
- 2133730,
- 2136155,
- 2126009,
- 2117405,
- 2124735,
- 2125745,
- 2127152,
- 2135803,
- 2117966,
- 2118672,
- 2119733,
- 2119767,
- 2120108,
- 2120800,
- 2121618,
- 2123159,
- 2123612,
- 2125345,
- 2127483,
- 2130911,
- 2133229,
- 2134036,
- 4231421,
- 2134861,
- 2127909,
- 2127930,
- 2118314,
- 2121382,
- 2119455,
- 2120052,
- 2121746,
- 2117650,
- 2117978,
- 4215212,
- 2118093,
- 2118144,
- 2118928,
- 2119764,
- 2119768,
- 2120023,
- 2120597,
- 2120950,
- 2121099,
- 2121916,
- 2122389,
- 2122797,
- 2123633,
- 2123843,
- 2123964,
- 2123999,
- 2127575,
- 2125272,
- 2125423,
- 2125211,
- 2125935,
- 2126280,
- 2121555,
- 2127320,
- 2128247,
- 2128713,
- 2128724,
- 2128722,
- 4226262,
- 2129265,
- 2118192,
- 2131043,
- 2131305,
- 2131428,
- 2132494,
- 2132740,
- 2133062,
- 2133519,
- 2134019,
- 2134031,
- 2135065,
- 2135670,
- 2136109,
- 2136624,
- 2135512,
- 2117837,
- 2118357,
- 2118668,
- 2119682,
- 2120718,
- 2122151,
- 2122910,
- 2125086,
- 2127795,
- 2128613,
- 2130164,
- 2130948,
- 2134099,
- 2134661,
- 2120928,
- 2137351,
- 2118463,
- 2121623,
- 2121651,
- 2125212,
- 2126457,
- 2127715,
- 2128319,
- 2128868,
- 2124754,
- 2126572,
- 2132653,
- 2123779,
- 2124385,
- 2118136,
- 2128513,
- 2124084,
- 2120778,
- 2137334,
- 2130667,
- 2120645,
- 2134345,
- 2125854,
- 2119288,
- 2120815,
- 2121927,
- 2123110,
- 2124940,
- 2133082,
- 2134081,
- 2136083,
- 2118737,
- 2123463,
- 2134541,
- 2120008,
- 2134179,
- 2118021,
- 2117197,
- 2118122,
- 2131353,
- 2132750,
- 2125912,
- 2122618,
- 2134859,
- 2124130,
- 2136500,
- 2129412,
- 2127223,
- 2118487,
- 2124128,
- 2133727,
- 4232931,
- 2124893,
- 2117260,
- 2120764,
- 2121488,
- 2133993,
- 2118402,
- 2133201,
- 2130057,
- 2131577,
- 2121471,
- 2123237,
- 2117235,
- 2117989,
- 2120066,
- 2120767,
- 2136046,
- 2117371,
- 2120074,
- 2121677,
- 2132621,
- 2125793,
- 2128304,
- 2128226,
- 4217831,
- 2131057,
- 2126635,
- 2126257,
- 2121332,
- 2121717,
- 2122619,
- 2122906,
- 2126275,
- 2129048,
- 2117187,
- 2121468,
- 2117195,
- 2119644,
- 2119330,
- 2121897,
- 2125763,
- 2129165,
- 2130173,
- 2130227,
- 2130367,
- 2133938,
- 2132375,
- 2131620,
- 2121204,
- 2122378,
- 2122925,
- 2132359,
- 2123639,
- 2125026,
- 2125118,
- 2126902,
- 2127924,
- 2120262,
- 2129781,
- 2130605,
- 2136492,
- 2117619,
- 2121411,
- 2122461,
- 2122642,
- 2123095,
- 2123631,
- 2127555,
- 2126412,
- 2130124,
- 2130106,
- 2133801,
- 2134349,
- 2117645,
- 2119673,
- 2120338,
- 4221061,
- 2124147,
- 2126180,
- 2126589,
- 2133175,
- 2119922,
- 2133216,
- 2135658,
- 2134041,
- 2131839,
- 2128356,
- 2127847,
- 2130985,
- 2117423,
- 2118245,
- 2118490,
- 2122445,
- 2123727,
- 2125002,
- 2127485,
- 2128788,
- 2129045,
- 2130486,
- 2131332,
- 2133995,
- 2123485,
- 2125600,
- 2126342,
- 2129435,
- 2130859,
- 2136513,
- 2137766,
- 2118141,
- 2128817,
- 2127986,
- 2128824,
- 2130055,
- 2128712,
- 2124520,
- 2121313,
- 2130060,
- 2127185,
- 2127200,
- 2117995,
- 2134626,
- 2125452,
- 2127482,
- 2134423,
- 2136810,
- 2117392,
- 2129776,
- 2122396,
- 2128719,
- 2135461,
- 2137321,
- 2119290,
- 2119769,
- 2131684,
- 2135740,
- 2117428,
- 2118180,
- 2118474,
- 2118605,
- 2118619,
- 2121222,
- 2122796,
- 2123153,
- 2123647,
- 2124862,
- 2124878,
- 2126408,
- 2126511,
- 2126829,
- 2127188,
- 2129473,
- 2130476,
- 2131433,
- 2133161,
- 2128836,
- 2134470,
- 2126185,
- 2136082,
- 4233455,
- 2122557,
- 2123369,
- 2127210,
- 2127588,
- 2128080,
- 2131267,
- 2131694,
- 2118442,
- 4215633,
- 2118694,
- 2120067,
- 2121351,
- 2121596,
- 2121906,
- 2122313,
- 2122361,
- 2122411,
- 2123152,
- 2124756,
- 2125004,
- 2127282,
- 2127534,
- 4225169,
- 2128344,
- 2129355,
- 2129783,
- 2130085,
- 2132139,
- 2132665,
- 2133179,
- 2134143,
- 2135902,
- 2136283,
- 2124299,
- 2128952,
- 2117785,
- 2120766,
- 2121646,
- 2123655,
- 2124760,
- 2126901,
- 2127625,
- 2129806,
- 2137915,
- 2123722,
- 2128407,
- 2118457,
- 2127243,
- 2136813,
- 2121574,
- 2130333,
- 2130929,
- 2130072,
- 2121532,
- 2121669,
- 2127202,
- 2128710,
- 2134076,
- 2123879,
- 2120171,
- 2120347,
- 2129168,
- 2127486,
- 2132780,
- 2117621,
- 2121578,
- 2124313,
- 2124855,
- 2125570,
- 2127074,
- 2128232,
- 2132072,
- 2132565,
- 2133113,
- 2121439,
- 2122703,
- 2127301,
- 2128338,
- 2130647,
- 2134824,
- 2134770,
- 2131100,
- 2131693,
- 2137133,
- 2118849,
- 2121580,
- 2123148,
- 2125148,
- 2125845,
- 2133159,
- 4230355,
- 4233275,
- 4220239,
- 2127094,
- 2117133,
- 2117336,
- 2119648,
- 2119979,
- 2120294,
- 2120652,
- 2118056,
- 2121219,
- 2121372,
- 2121750,
- 2122358,
- 2123127,
- 2123175,
- 2123374,
- 2125166,
- 2126390,
- 2128678,
- 2130256,
- 2130330,
- 2130585,
- 2132828,
- 2133152,
- 2133222,
- 2133364,
- 2135580,
- 2135620,
- 2117550,
- 2122923,
- 2124646,
- 2130462,
- 2131041,
- 2131306,
- 2134248,
- 2120705,
- 2124115,
- 2136232,
- 2131066,
- 2131287,
- 2117391,
- 2118255,
- 2121641,
- 2121285,
- 2123533,
- 2128271,
- 2130297,
- 2132231,
- 2132358,
- 2125301,
- 2121495,
- 2122325,
- 2124984,
- 2117327,
- 2126441,
- 2136978,
- 2118150,
- 2118715,
- 2119284,
- 2119859,
- 2122148,
- 2122350,
- 2126106,
- 2120046,
- 2129033,
- 2129118,
- 2129179,
- 2135792,
- 2123143,
- 2130014,
- 2117145,
- 2117493,
- 2118005,
- 2119744,
- 2121315,
- 2121331,
- 2121482,
- 2123716,
- 2117158,
- 2131261,
- 2135433,
- 2135643,
- 2129011,
- 2136065,
- 2117883,
- 2119873,
- 2127446,
- 2128039,
- 2118181,
- 2127781,
- 2131217,
- 2128774,
- 2117711,
- 2119945,
- 2126407,
- 2128839,
- 2129384,
- 2133946,
- 2133972,
- 2134093,
- 2117567,
- 4215497,
- 2120233,
- 2121473,
- 2135981,
- 2117597,
- 2130455,
- 2134762,
- 2119427,
- 2122581,
- 2124649,
- 2127147,
- 2132188,
- 2133780,
- 2128450,
- 2118367,
- 2119827,
- 2122069,
- 2122250,
- 2123438,
- 2124749,
- 2128959,
- 2130921,
- 2117667,
- 2117624,
- 2118405,
- 2118726,
- 2119729,
- 2120009,
- 2120605,
- 2120944,
- 2120943,
- 2121001,
- 2121366,
- 2122417,
- 2122599,
- 2123070,
- 2123193,
- 2123531,
- 2125013,
- 2125025,
- 2126073,
- 2127922,
- 2129451,
- 2130142,
- 2130611,
- 2130956,
- 2131180,
- 2131714,
- 2132242,
- 2132522,
- 2133066,
- 2134182,
- 2134738,
- 2136317,
- 2137331,
- 2137452,
- 2117199,
- 2117281,
- 2117773,
- 2118230,
- 2119498,
- 2120104,
- 2121277,
- 2121688,
- 2121689,
- 2122303,
- 2123444,
- 2123547,
- 2123728,
- 2123986,
- 2118034,
- 2129185,
- 2130090,
- 2130344,
- 2132736,
- 2133132,
- 2133183,
- 2134654,
- 2135602,
- 2118688,
- 2136108,
- 2118423,
- 2117845,
- 2118492,
- 4217000,
- 2122930,
- 2123572,
- 2126439,
- 2127718,
- 2128454,
- 2134502,
- 2118339,
- 2124961,
- 2124678,
- 2119680,
- 2121292,
- 2120020,
- 2123564,
- 2129915,
- 2118113,
- 2127558,
- 2122857,
- 2128104,
- 2136916,
- 2137787,
- 2119627,
- 2120121,
- 2123303,
- 2123674,
- 2124750,
- 2118889,
- 2124249,
- 2121301,
- 2130332,
- 2123669,
- 2137002,
- 2123774,
- 2137170,
- 2123869,
- 2117286,
- 2117603,
- 2118600,
- 2122425,
- 2123563,
- 2124971,
- 2133956,
- 2117549,
- 2129517,
- 2137791,
- 2117127,
- 2122082,
- 2125440,
- 2125611,
- 2131219,
- 2118771,
- 2123562,
- 2136901,
- 2121203,
- 2128789,
- 2120876,
- 2120646,
- 2131740,
- 2125386,
- 2131153,
- 2128404,
- 2130184,
- 2120089,
- 2129037,
- 2124817,
- 2127648,
- 2118361,
- 2119970,
- 2126113,
- 2126431,
- 2127835,
- 2135847,
- 2137441,
- 2124043,
- 2120319,
- 2120216,
- 2118053,
- 2118669,
- 2118781,
- 2123278,
- 2127583,
- 2134007,
- 2134680,
- 2137332,
- 2120170,
- 2126429,
- 2125509,
- 2117965,
- 2123977,
- 2129343,
- 2129388,
- 2135906,
- 2137786,
- 2122872,
- 2124321,
- 2130690,
- 2120068,
- 2120543,
- 2124763,
- 2126619,
- 2127602,
- 2129330,
- 2129943,
- 2131097,
- 2117938,
- 2123560,
- 2137817,
- 2127598,
- 2123618,
- 2118399,
- 2136325,
- 2120740,
- 2122299,
- 2129022,
- 2133168,
- 2118991,
- 2121910,
- 2129163,
- 2135424,
- 2118401,
- 2117215,
- 2118070,
- 2119964,
- 2126394,
- 2129974,
- 2134478,
- 2121509,
- 2127842,
- 2118532,
- 2121593,
- 2129156,
- 2131372,
- 2132531,
- 2133645,
- 2135894,
- 2123763,
- 2131374,
- 2135123,
- 2121993,
- 2121992,
- 2124985,
- 2127442,
- 4229869,
- 2133816,
- 2118959,
- 2117457,
- 2117930,
- 2118343,
- 2118603,
- 2120613,
- 2121341,
- 2121888,
- 2122114,
- 2122710,
- 2123529,
- 2123738,
- 2125415,
- 2125196,
- 2126646,
- 2126647,
- 2127153,
- 4225360,
- 2132181,
- 2132632,
- 2134090,
- 2134161,
- 2134261,
- 2135748,
- 2131853,
- 2119957,
- 2117256,
- 2117465,
- 2117134,
- 2132617,
- 2133823,
- 2136080,
- 2117805,
- 2121340,
- 2120086,
- 2120633,
- 2121400,
- 2122714,
- 2122746,
- 2122945,
- 2123484,
- 2124106,
- 2124248,
- 2125067,
- 2125494,
- 2126228,
- 2127144,
- 2128559,
- 4226954,
- 2129920,
- 2131017,
- 2131145,
- 2132353,
- 2132769,
- 2133514,
- 2134117,
- 2135677,
- 2136330,
- 2122110,
- 2122385,
- 2124594,
- 2124931,
- 2125172,
- 2129868,
- 2129916,
- 2125248,
- 2129797,
- 2131898,
- 2132216,
- 2123621,
- 2130865,
- 2136124,
- 2135799,
- 2125083,
- 2129249,
- 2131005,
- 2134378,
- 2117233,
- 2118517,
- 2121040,
- 4221700,
- 2125803,
- 2131405,
- 2131501,
- 2132391,
- 2118185,
- 2118671,
- 2120805,
- 2123598,
- 2123944,
- 2126854,
- 2126979,
- 2127330,
- 2132175,
- 2132193,
- 2134476,
- 2135778,
- 2135672,
- 2121611,
- 2126727,
- 2128587,
- 2131022,
- 2122656,
- 2127205,
- 2118281,
- 2125121,
- 2125468,
- 2126857,
- 2127193,
- 2127979,
- 2129042,
- 2135686,
- 2128604,
- 2137997,
- 2117558,
- 2122094,
- 2123205,
- 4228700,
- 2117254,
- 2117294,
- 2117850,
- 2117153,
- 2118092,
- 2120686,
- 2123161,
- 2123905,
- 2125244,
- 2126623,
- 2127426,
- 2127789,
- 2128412,
- 2129127,
- 2130543,
- 2132690,
- 2134140,
- 2134479,
- 2135669,
- 2136088,
- 2118299,
- 2129361,
- 2117675,
- 2118552,
- 2123671,
- 2125259,
- 2126288,
- 2126899,
- 2130408,
- 2133802,
- 2135715,
- 2137175,
- 2137759,
- 2126944,
- 2119745,
- 2125209,
- 2129199,
- 4233310,
- 2117348,
- 2117430,
- 2117515,
- 2118071,
- 2118321,
- 2121146,
- 2121756,
- 2126770,
- 2128188,
- 2130643,
- 2134580,
- 2135735,
- 2135798,
- 2135818,
- 2137751,
- 2137954,
- 2123430,
- 2124660,
- 2118167,
- 2118307,
- 2126024,
- 2132162,
- 4218569,
- 2121803,
- 2122128,
- 4222755,
- 4223305,
- 2128958,
- 4226548,
- 2130031,
- 4228334,
- 4231203,
- 2134828,
- 2118722,
- 2136943,
- 2124499,
- 2125961,
- 2133186,
- 2133487,
- 2135858,
- 2118324,
- 2120257,
- 2121418,
- 2121476,
- 4220695,
- 2124156,
- 2124180,
- 2125162,
- 2125583,
- 2126434,
- 2126588,
- 2128877,
- 2129921,
- 2130046,
- 2131787,
- 2134222,
- 2117997,
- 2137747,
- 2128260,
- 2130059,
- 2134834,
- 2132694,
- 2117677,
- 2118796,
- 2132593,
- 2124650,
- 2133188,
- 2130183,
- 2121937,
- 2123680,
- 2137586,
- 2117273,
- 2117272,
- 2137104,
- 2132587,
- 2131393,
- 2131304,
- 2124032,
- 2125438,
- 2128023,
- 2130261,
- 2121484,
- 2117136,
- 2117141,
- 2117162,
- 2117169,
- 2117174,
- 2117180,
- 2117183,
- 2117186,
- 2117206,
- 2117208,
- 2117250,
- 2117253,
- 2133099,
- 2117258,
- 2130450,
- 2121485,
- 2117262,
- 2117278,
- 2117279,
- 2117280,
- 2117282,
- 2117296,
- 2117299,
- 2117302,
- 2117326,
- 2117325,
- 2117316,
- 2117318,
- 2117314,
- 2117335,
- 2117342,
- 2117357,
- 2117343,
- 2117367,
- 2117385,
- 2117466,
- 2117424,
- 2117467,
- 2117469,
- 2117463,
- 2117447,
- 2117494,
- 2117512,
- 2117519,
- 2117528,
- 2117499,
- 2117481,
- 2117488,
- 2117521,
- 2117487,
- 2117510,
- 2117526,
- 2117912,
- 2117588,
- 2117599,
- 2117582,
- 2117592,
- 2117595,
- 2117585,
- 2117594,
- 2117584,
- 2117604,
- 2117605,
- 2117658,
- 2117672,
- 2117652,
- 2117674,
- 2117669,
- 2117637,
- 2117404,
- 2117622,
- 2117665,
- 2117673,
- 2117676,
- 2117630,
- 2117615,
- 2117649,
- 2117638,
- 2117699,
- 2117703,
- 2123523,
- 2117717,
- 2117712,
- 2117704,
- 2117722,
- 2117718,
- 2117740,
- 2117752,
- 2117760,
- 2117786,
- 2117765,
- 2117812,
- 2117810,
- 2117833,
- 2117834,
- 2117811,
- 2117826,
- 2117846,
- 2117854,
- 2117861,
- 2117869,
- 2117859,
- 2117870,
- 2117881,
- 2117877,
- 2117897,
- 2117889,
- 2117890,
- 2117910,
- 2117909,
- 2117908,
- 2117914,
- 2117921,
- 2117946,
- 2117943,
- 2117948,
- 2117947,
- 2117951,
- 2117952,
- 2117970,
- 2117964,
- 4215124,
- 2117986,
- 2128632,
- 2117993,
- 2117994,
- 2117998,
- 2118016,
- 2118018,
- 2119384,
- 2118028,
- 2118025,
- 2118031,
- 2118033,
- 2118035,
- 4215189,
- 2118038,
- 2118052,
- 2118054,
- 2118050,
- 2118057,
- 2118058,
- 2118059,
- 2118067,
- 2118065,
- 2118066,
- 2118064,
- 2118069,
- 2118077,
- 2118085,
- 2118089,
- 2118107,
- 2118112,
- 2131541,
- 2118121,
- 2118125,
- 2118128,
- 2118133,
- 2118142,
- 2118148,
- 2118155,
- 2118164,
- 2118158,
- 2118183,
- 2118186,
- 2118190,
- 2118195,
- 2118201,
- 2118223,
- 2118212,
- 2118219,
- 2118220,
- 2118238,
- 2118228,
- 2118250,
- 2118260,
- 2118249,
- 2118259,
- 2118271,
- 2118269,
- 2118285,
- 2118292,
- 2118290,
- 2118257,
- 2118280,
- 2118289,
- 2133928,
- 2133927,
- 2118316,
- 2118317,
- 2118332,
- 2118325,
- 2118337,
- 2118349,
- 2118359,
- 2118366,
- 2118371,
- 2118374,
- 2136301,
- 2118368,
- 2118387,
- 2118389,
- 2118392,
- 2118393,
- 2118406,
- 2118408,
- 2127160,
- 2118413,
- 2118416,
- 2118415,
- 2118421,
- 2118426,
- 2118435,
- 2118447,
- 2118449,
- 2118451,
- 2118456,
- 2118464,
- 2118470,
- 2118469,
- 2117143,
- 2118473,
- 2118477,
- 2118102,
- 2118494,
- 2118505,
- 2118510,
- 2119960,
- 2118523,
- 2118519,
- 2118530,
- 2118550,
- 2118560,
- 2118566,
- 2118565,
- 2118574,
- 2118576,
- 2118582,
- 2118595,
- 2128914,
- 2135769,
- 2118623,
- 2123516,
- 2126318,
- 2118638,
- 2118632,
- 2118637,
- 2118650,
- 2118657,
- 2118717,
- 2118720,
- 2118700,
- 2118701,
- 2118716,
- 2118702,
- 2118710,
- 2118697,
- 2118685,
- 2118734,
- 2118799,
- 2118773,
- 2118798,
- 2118751,
- 2118769,
- 2118775,
- 2118768,
- 2118802,
- 2118779,
- 2118784,
- 2118774,
- 2118788,
- 2118800,
- 2118790,
- 2118855,
- 2118818,
- 2118840,
- 2118821,
- 2118828,
- 2118852,
- 2118856,
- 2118824,
- 2118827,
- 2118850,
- 2118820,
- 2118846,
- 2118844,
- 2118872,
- 2118885,
- 2118886,
- 2118927,
- 2118932,
- 2118909,
- 2118894,
- 2118893,
- 2118906,
- 2118882,
- 2118969,
- 2118976,
- 2119011,
- 2118988,
- 2118958,
- 2119004,
- 2118981,
- 2118998,
- 2118999,
- 2118968,
- 2118963,
- 2119005,
- 2119065,
- 2119040,
- 2118831,
- 2119050,
- 2119071,
- 2119035,
- 2119038,
- 2119064,
- 2119070,
- 2119086,
- 2119036,
- 2119043,
- 2119081,
- 2119047,
- 2119080,
- 2119130,
- 2119109,
- 2119135,
- 2119108,
- 2119132,
- 2119140,
- 2119124,
- 2119188,
- 2119159,
- 2119190,
- 2119166,
- 2119165,
- 2119195,
- 2119161,
- 2119246,
- 2119248,
- 2126303,
- 2119220,
- 2119222,
- 2119218,
- 2119224,
- 2119275,
- 2119268,
- 2119215,
- 2119276,
- 2119274,
- 2119302,
- 2119296,
- 2119306,
- 2119328,
- 2119316,
- 2119311,
- 2119333,
- 2119342,
- 2119350,
- 2119348,
- 2119362,
- 2119356,
- 2119361,
- 2119363,
- 2119360,
- 2119368,
- 2119374,
- 2119377,
- 2119379,
- 2119383,
- 2119406,
- 2119417,
- 2119424,
- 2119423,
- 2119428,
- 2119433,
- 2119432,
- 2119435,
- 2119437,
- 2119443,
- 2119448,
- 2119446,
- 2119111,
- 2119452,
- 2119462,
- 2119479,
- 2119480,
- 2119502,
- 2119483,
- 2119488,
- 2119503,
- 2119529,
- 2119616,
- 2119560,
- 2119521,
- 2119551,
- 2119561,
- 2119571,
- 2119584,
- 2119603,
- 2119588,
- 2119594,
- 2119600,
- 2119619,
- 2119622,
- 2119636,
- 2119634,
- 2119635,
- 2119690,
- 2119638,
- 2119651,
- 2119691,
- 2119705,
- 2119709,
- 2119794,
- 2119713,
- 2119778,
- 2119755,
- 2119792,
- 2124736,
- 2119762,
- 2119741,
- 2119801,
- 2119813,
- 2119865,
- 2119839,
- 2119851,
- 2119866,
- 2119902,
- 2119867,
- 2119864,
- 2119854,
- 2119877,
- 2119891,
- 2119889,
- 2119895,
- 2119897,
- 2119896,
- 2119909,
- 2119900,
- 2119908,
- 2119903,
- 2119919,
- 2119930,
- 2119929,
- 2119931,
- 2119932,
- 2119933,
- 2119938,
- 2119946,
- 2119952,
- 2119963,
- 2123942,
- 2119973,
- 2119980,
- 2119981,
- 2119986,
- 2119992,
- 2119998,
- 2128594,
- 2120021,
- 2120016,
- 2120014,
- 2120026,
- 2120024,
- 2120034,
- 2120032,
- 2120039,
- 2120044,
- 2120041,
- 2120056,
- 2120065,
- 2120093,
- 2117470,
- 2117547,
- 2120099,
- 2120114,
- 2120134,
- 2120168,
- 2120156,
- 2120077,
- 2120153,
- 2120154,
- 2120229,
- 2120223,
- 2120209,
- 2120220,
- 2120201,
- 2120218,
- 2120256,
- 2120300,
- 2120265,
- 2120245,
- 2120246,
- 2120290,
- 2120298,
- 2120346,
- 2120380,
- 2120382,
- 2120395,
- 2120386,
- 2120381,
- 2120419,
- 2120407,
- 2120422,
- 2120425,
- 2120406,
- 2120442,
- 2120443,
- 2120460,
- 2120459,
- 2120470,
- 2120498,
- 2120400,
- 2120490,
- 2120502,
- 2120510,
- 2120515,
- 2120517,
- 2120512,
- 2120529,
- 2120533,
- 2120538,
- 2120539,
- 2120549,
- 2120553,
- 2120560,
- 2120563,
- 2120565,
- 2120568,
- 2123144,
- 2120570,
- 2120576,
- 2120579,
- 2120614,
- 2120632,
- 2120643,
- 2120647,
- 2120649,
- 2120660,
- 2120656,
- 2120676,
- 2120678,
- 2120674,
- 2120670,
- 2120677,
- 2120683,
- 2120688,
- 2120694,
- 2120691,
- 2120709,
- 2120711,
- 2120712,
- 2120717,
- 2120723,
- 2120736,
- 2120738,
- 2120744,
- 2120760,
- 2120761,
- 2120769,
- 2120774,
- 2120782,
- 2120787,
- 2120784,
- 2120783,
- 2120561,
- 2120812,
- 4217966,
- 2117218,
- 2120822,
- 2120825,
- 2120844,
- 2120849,
- 2120852,
- 2120091,
- 2120875,
- 2120891,
- 2120886,
- 2120892,
- 2120887,
- 2120901,
- 2120894,
- 2120903,
- 2120921,
- 2120937,
- 2120957,
- 2120954,
- 2120941,
- 2121100,
- 2120938,
- 2120971,
- 2120981,
- 2120983,
- 2121052,
- 2120991,
- 2120987,
- 2120977,
- 2120980,
- 2120994,
- 2120986,
- 2120985,
- 2120984,
- 2121036,
- 2121042,
- 2121038,
- 2121035,
- 2121068,
- 2121075,
- 2121078,
- 2121095,
- 2121092,
- 2121090,
- 2121122,
- 2121117,
- 2121132,
- 2121134,
- 2121149,
- 2121104,
- 2121143,
- 2121148,
- 2121161,
- 2121165,
- 2121171,
- 2121170,
- 2121174,
- 2121179,
- 2121195,
- 2121202,
- 2121205,
- 2121227,
- 2121242,
- 2121241,
- 2121233,
- 2121243,
- 2121270,
- 2121271,
- 2121284,
- 2121283,
- 2121280,
- 2121294,
- 2121303,
- 2121300,
- 2121311,
- 2121314,
- 2121316,
- 2121287,
- 2121333,
- 2121334,
- 2121338,
- 2137788,
- 2121343,
- 2121376,
- 2121409,
- 2121410,
- 2121416,
- 2121424,
- 2121423,
- 2121430,
- 2121443,
- 2121437,
- 2121434,
- 2121435,
- 2121442,
- 2121441,
- 2121448,
- 2121449,
- 2121452,
- 2121457,
- 2121459,
- 2121456,
- 2121460,
- 2121464,
- 2121470,
- 2121475,
- 2121481,
- 2121565,
- 2121564,
- 2121483,
- 2121489,
- 2121494,
- 2121513,
- 2121517,
- 2121528,
- 2121537,
- 2121544,
- 2121548,
- 2121550,
- 2121519,
- 2121553,
- 2121558,
- 2121559,
- 2121561,
- 2121569,
- 2121581,
- 2121587,
- 2121591,
- 2121603,
- 2121602,
- 2121599,
- 2121610,
- 2121608,
- 2121617,
- 2121607,
- 2121630,
- 2121625,
- 2121624,
- 2121632,
- 2121640,
- 2121645,
- 2121660,
- 2121686,
- 2121723,
- 2121700,
- 2121720,
- 2121713,
- 2121693,
- 2121907,
- 2121727,
- 2121761,
- 2121824,
- 2121753,
- 2121744,
- 2121769,
- 2121742,
- 2121777,
- 2121755,
- 2121749,
- 2121771,
- 2121766,
- 2121743,
- 2121786,
- 2121818,
- 2121793,
- 2121834,
- 2121847,
- 2121823,
- 2121802,
- 2121798,
- 2121805,
- 2121827,
- 2121795,
- 2121828,
- 2121794,
- 2121836,
- 2121835,
- 2121817,
- 2121857,
- 2121869,
- 2121959,
- 2121859,
- 2121882,
- 2121860,
- 2121883,
- 2121878,
- 2121879,
- 2121874,
- 2121895,
- 2121867,
- 2121953,
- 2121912,
- 2121952,
- 2121939,
- 2121908,
- 2121712,
- 2121917,
- 2121926,
- 2121909,
- 2121944,
- 2122061,
- 2122005,
- 2121990,
- 2121974,
- 2121975,
- 2121984,
- 2121972,
- 2121978,
- 2121987,
- 2122017,
- 2121979,
- 2121969,
- 2121997,
- 2121998,
- 2122055,
- 2122046,
- 2122024,
- 2122023,
- 2122058,
- 2122047,
- 2122044,
- 2122028,
- 2122036,
- 2122045,
- 2122050,
- 2122052,
- 2122099,
- 2122103,
- 2122072,
- 2122073,
- 2122074,
- 2122091,
- 2122100,
- 2122095,
- 2122085,
- 2122097,
- 2122079,
- 2122077,
- 2122067,
- 2122101,
- 2122137,
- 2122134,
- 2122119,
- 2122156,
- 2122132,
- 2122138,
- 2122122,
- 2122129,
- 2122155,
- 2122158,
- 2122188,
- 2122186,
- 2122185,
- 2122231,
- 2122184,
- 2122179,
- 2122182,
- 2122170,
- 2122187,
- 2129785,
- 2122189,
- 2122214,
- 2122211,
- 2122230,
- 2122234,
- 2122228,
- 2122239,
- 2122237,
- 2122236,
- 2122238,
- 2122240,
- 2122248,
- 2122249,
- 2122253,
- 2122252,
- 2122260,
- 2122267,
- 2122270,
- 2122273,
- 2122282,
- 2122286,
- 2122288,
- 2122290,
- 2122291,
- 2122305,
- 2122318,
- 2122334,
- 2122339,
- 2122331,
- 2122336,
- 2122344,
- 2122364,
- 2122370,
- 2122377,
- 2122366,
- 2122386,
- 2122387,
- 2122390,
- 4219604,
- 2122371,
- 2122388,
- 2122455,
- 2122449,
- 2122427,
- 2122447,
- 2122495,
- 2122438,
- 2122964,
- 2122440,
- 2122460,
- 2122444,
- 2122442,
- 2122434,
- 2122439,
- 2122395,
- 2122441,
- 2122508,
- 2122478,
- 2122481,
- 2122535,
- 2122498,
- 2122504,
- 2122479,
- 2122485,
- 2122576,
- 2122558,
- 2122573,
- 2122780,
- 2122575,
- 2122646,
- 2122638,
- 2122624,
- 2122667,
- 2122614,
- 2122659,
- 2122639,
- 2122633,
- 2122655,
- 2122677,
- 2122603,
- 2122601,
- 2122686,
- 2122729,
- 2122688,
- 2122694,
- 2122723,
- 2122697,
- 2122706,
- 2122742,
- 2122692,
- 2122774,
- 2122804,
- 2122758,
- 2122771,
- 2122790,
- 2122806,
- 2123037,
- 2122775,
- 2122792,
- 2122767,
- 2122855,
- 2122863,
- 2122870,
- 2122830,
- 2123050,
- 2122901,
- 2122899,
- 2122917,
- 2122921,
- 2122888,
- 2122940,
- 2122970,
- 2122962,
- 2122949,
- 2122951,
- 2122939,
- 2122968,
- 2122946,
- 2122993,
- 2122983,
- 2130441,
- 2122976,
- 2122977,
- 2122412,
- 2122979,
- 2122991,
- 2123052,
- 2122998,
- 2122996,
- 2122994,
- 2123002,
- 2123008,
- 2123005,
- 2123032,
- 2123036,
- 2123013,
- 2123044,
- 2123043,
- 2123051,
- 2123060,
- 2123061,
- 2123063,
- 2123062,
- 2123064,
- 2127179,
- 2123080,
- 2123094,
- 2123093,
- 2123085,
- 2123096,
- 2123102,
- 2123101,
- 2123122,
- 2123128,
- 2123138,
- 2123139,
- 2132874,
- 2123163,
- 2123167,
- 2123179,
- 2123191,
- 2123203,
- 2123206,
- 2123201,
- 2123204,
- 2123212,
- 2123218,
- 2123227,
- 2123225,
- 2123232,
- 2123233,
- 2123249,
- 2123634,
- 2123274,
- 2123267,
- 2123259,
- 2123635,
- 2123317,
- 2123318,
- 2123316,
- 2123292,
- 2123343,
- 2123332,
- 2123337,
- 2123329,
- 2123358,
- 2123357,
- 2123364,
- 2123367,
- 2123368,
- 2123359,
- 2123362,
- 2123376,
- 2123395,
- 2123400,
- 2123406,
- 2123401,
- 2123396,
- 2123416,
- 2123421,
- 2123457,
- 2123449,
- 2123465,
- 2123454,
- 2123452,
- 2123460,
- 2123448,
- 2123478,
- 2123482,
- 2123488,
- 2123327,
- 2123494,
- 2123497,
- 2123504,
- 2123509,
- 2123511,
- 2123535,
- 2123542,
- 2123550,
- 2123558,
- 2123559,
- 2135864,
- 2123566,
- 2123583,
- 2123574,
- 2123585,
- 2123576,
- 2123575,
- 2123590,
- 2123614,
- 2123616,
- 2123609,
- 2123619,
- 2123620,
- 2123657,
- 2123632,
- 2123689,
- 2123644,
- 2123626,
- 2123660,
- 2123659,
- 2123686,
- 2123681,
- 2123653,
- 2123703,
- 2123759,
- 2123700,
- 2123756,
- 2123699,
- 2123753,
- 2123704,
- 2123748,
- 2123742,
- 2123741,
- 2123746,
- 2123758,
- 2123705,
- 2123726,
- 2123718,
- 2123751,
- 2124444,
- 2123806,
- 2123846,
- 2123817,
- 2123840,
- 2123853,
- 2123826,
- 2123854,
- 2123955,
- 2123819,
- 2123865,
- 2123875,
- 2123895,
- 2123903,
- 2123935,
- 2123919,
- 2123949,
- 2123924,
- 2123933,
- 2123931,
- 2123907,
- 2124462,
- 2123961,
- 2123892,
- 2123957,
- 2123936,
- 2123962,
- 2124047,
- 2123917,
- 2123902,
- 2124033,
- 2123978,
- 2124040,
- 2123992,
- 2124066,
- 2124070,
- 2124001,
- 2124044,
- 2123981,
- 2123988,
- 2124007,
- 2123989,
- 2124086,
- 2124050,
- 2124036,
- 2123991,
- 2124003,
- 2124069,
- 2124025,
- 2124000,
- 2124015,
- 2124072,
- 2124074,
- 2124058,
- 2124067,
- 2124065,
- 2123974,
- 2124153,
- 2124151,
- 2124124,
- 2124152,
- 2124139,
- 2124116,
- 2124158,
- 2124142,
- 2124089,
- 2124148,
- 2124093,
- 2124121,
- 2124080,
- 2124129,
- 2124126,
- 2124125,
- 2124161,
- 2124138,
- 2124210,
- 2124206,
- 2124240,
- 2124223,
- 2124225,
- 2124243,
- 2124222,
- 2124238,
- 2120680,
- 2124234,
- 2124253,
- 2124219,
- 2124227,
- 2124199,
- 2124334,
- 2124177,
- 2124192,
- 2124188,
- 2124181,
- 2124212,
- 2124254,
- 2124264,
- 2124290,
- 2124315,
- 2124287,
- 2124554,
- 2124281,
- 2124274,
- 2124263,
- 2124293,
- 2124209,
- 2124318,
- 2124269,
- 2124308,
- 2124267,
- 2124298,
- 2124306,
- 2124481,
- 2124323,
- 2124307,
- 2124356,
- 2124300,
- 2124402,
- 2124342,
- 2124408,
- 2124359,
- 2124386,
- 2124377,
- 2124390,
- 2124360,
- 2124344,
- 2124322,
- 2124432,
- 2124429,
- 2124448,
- 2124420,
- 2124450,
- 2124451,
- 2124439,
- 2131479,
- 2124475,
- 2124483,
- 2124482,
- 2124472,
- 2124467,
- 2124460,
- 2124510,
- 2124497,
- 2124511,
- 2124458,
- 2124506,
- 2124522,
- 2124539,
- 2124549,
- 2131478,
- 2124538,
- 2124562,
- 2124566,
- 2136881,
- 2124575,
- 2124600,
- 2124599,
- 2127580,
- 2124601,
- 2136302,
- 2124615,
- 2124611,
- 2124617,
- 2124624,
- 2124633,
- 2124628,
- 2124635,
- 2124639,
- 2124641,
- 2124664,
- 2124665,
- 2124671,
- 2124672,
- 2124676,
- 2124675,
- 2124685,
- 2124696,
- 2124693,
- 2124702,
- 2124708,
- 2124714,
- 2124715,
- 2124719,
- 2124722,
- 2124721,
- 2124723,
- 2124727,
- 2124732,
- 2124742,
- 2124747,
- 2124755,
- 2124767,
- 2124780,
- 2124779,
- 2124787,
- 2124783,
- 2137790,
- 2124808,
- 2124819,
- 2124820,
- 2124827,
- 2124836,
- 2124835,
- 2124894,
- 2124885,
- 2124898,
- 2124906,
- 2124930,
- 2124941,
- 2124954,
- 2124929,
- 2124955,
- 2124926,
- 2124904,
- 2124915,
- 2124946,
- 2124944,
- 2124996,
- 2125041,
- 2125011,
- 2124989,
- 2125015,
- 2124997,
- 2125021,
- 2124974,
- 2124977,
- 2124990,
- 2124986,
- 2125019,
- 2125039,
- 2125017,
- 2125034,
- 2125087,
- 2132045,
- 2125110,
- 2125099,
- 2125117,
- 2125112,
- 2125081,
- 2125109,
- 2125107,
- 2125074,
- 2125068,
- 2125155,
- 2125203,
- 2125156,
- 2125146,
- 2125177,
- 2125145,
- 2125198,
- 2125205,
- 2125796,
- 2125189,
- 2125305,
- 2125333,
- 2125322,
- 2125237,
- 2125255,
- 2125286,
- 2125240,
- 2125254,
- 2125292,
- 2125278,
- 2125260,
- 2125288,
- 2125266,
- 2125253,
- 2125306,
- 2125273,
- 2125284,
- 2125269,
- 2125290,
- 2125294,
- 2125357,
- 2125422,
- 2125358,
- 2125337,
- 2125426,
- 2125407,
- 2125374,
- 2125347,
- 2125419,
- 2125355,
- 2125430,
- 2125389,
- 2125343,
- 2125379,
- 2125370,
- 2125390,
- 2125348,
- 2125567,
- 2125341,
- 2125368,
- 2125442,
- 2125482,
- 2125464,
- 2125513,
- 2125495,
- 2125523,
- 2125501,
- 2125487,
- 2125508,
- 2125490,
- 2125524,
- 2125525,
- 2125455,
- 2125477,
- 2125506,
- 2125471,
- 2125633,
- 2125585,
- 2125900,
- 2125548,
- 2125560,
- 2125566,
- 2125631,
- 2125554,
- 2125617,
- 2125551,
- 2125618,
- 2125516,
- 2125630,
- 2125587,
- 2125559,
- 2125702,
- 2125690,
- 2125688,
- 2125697,
- 2125696,
- 2125679,
- 2125659,
- 2125811,
- 2125677,
- 2125698,
- 2125692,
- 2125656,
- 2125710,
- 2125713,
- 2125762,
- 2125670,
- 2125747,
- 2125731,
- 2125729,
- 2125732,
- 2125753,
- 2125766,
- 2125738,
- 2125791,
- 2125781,
- 2125804,
- 2125780,
- 2125784,
- 2125809,
- 2125806,
- 2125787,
- 2125833,
- 2125835,
- 2125818,
- 2125841,
- 2125825,
- 2125839,
- 2125822,
- 2125851,
- 2125850,
- 2125684,
- 2125853,
- 2125848,
- 2125855,
- 2125872,
- 2125886,
- 2125874,
- 2125905,
- 2125923,
- 2125977,
- 2125970,
- 2125999,
- 2126065,
- 2125996,
- 2126008,
- 2126003,
- 2125998,
- 2126047,
- 2126027,
- 2126045,
- 2126041,
- 2126089,
- 2126077,
- 2126108,
- 2126105,
- 2126181,
- 2126165,
- 2126216,
- 2126182,
- 2126178,
- 2126156,
- 2126166,
- 2126188,
- 2126223,
- 2126331,
- 2126212,
- 2126229,
- 2126248,
- 2126252,
- 2126295,
- 2126265,
- 2126270,
- 2126290,
- 2126281,
- 2126292,
- 2126286,
- 2126304,
- 2126316,
- 2126311,
- 2126325,
- 2126332,
- 2126329,
- 2126335,
- 2126349,
- 2126352,
- 2126363,
- 4223528,
- 2126381,
- 2126380,
- 2126384,
- 2126386,
- 2126395,
- 2126396,
- 2126399,
- 2126400,
- 2126406,
- 2126411,
- 2126424,
- 2126452,
- 2126462,
- 2126466,
- 2126465,
- 2126471,
- 2126482,
- 2126486,
- 2126498,
- 2126503,
- 2126521,
- 2126514,
- 2126531,
- 2126534,
- 2126532,
- 2126542,
- 2126546,
- 2126562,
- 2126560,
- 2126561,
- 2126585,
- 2126583,
- 2117647,
- 2126615,
- 2126602,
- 2126620,
- 2126614,
- 2126621,
- 2126644,
- 2126639,
- 2126633,
- 2126629,
- 2126654,
- 2126670,
- 2126671,
- 2137816,
- 2126679,
- 2126698,
- 2126696,
- 2126704,
- 2126712,
- 2126709,
- 2126715,
- 2126714,
- 2126792,
- 2126771,
- 2126798,
- 2126779,
- 2126784,
- 2126821,
- 2126830,
- 2126814,
- 2127010,
- 2126853,
- 2126959,
- 2126885,
- 2126840,
- 2126898,
- 2126906,
- 2126933,
- 2126911,
- 2126943,
- 2126937,
- 2126913,
- 2126940,
- 2126953,
- 2126960,
- 2126947,
- 2126954,
- 2126966,
- 2126974,
- 2126987,
- 2127006,
- 2127015,
- 2127050,
- 2127055,
- 2127060,
- 2126833,
- 2127072,
- 2127075,
- 2127079,
- 2127081,
- 2127086,
- 2127090,
- 2127088,
- 2127089,
- 2127096,
- 2127095,
- 2127108,
- 2127107,
- 2127109,
- 2127116,
- 2127118,
- 2127117,
- 2127125,
- 2127123,
- 2127134,
- 2127142,
- 2127148,
- 2127164,
- 2127172,
- 2127181,
- 2127178,
- 2127177,
- 2127195,
- 2127174,
- 2127194,
- 2127209,
- 2127204,
- 2127207,
- 2127211,
- 2127213,
- 2127224,
- 2127222,
- 2127238,
- 2127239,
- 2127220,
- 2127242,
- 2127241,
- 2127234,
- 2127252,
- 2127258,
- 2127261,
- 2127269,
- 2127267,
- 2127298,
- 2127283,
- 2127299,
- 2127285,
- 2127293,
- 2127288,
- 2127292,
- 2127281,
- 2127309,
- 2127306,
- 2127314,
- 2127321,
- 2127331,
- 2127326,
- 2127358,
- 2127359,
- 2127356,
- 2127361,
- 2127344,
- 2127354,
- 2127346,
- 2127347,
- 2127371,
- 2127373,
- 2127369,
- 2127391,
- 2127399,
- 2127392,
- 2127393,
- 2127394,
- 2127396,
- 2127412,
- 2127408,
- 2127419,
- 2127431,
- 2127432,
- 2127430,
- 2127452,
- 2127448,
- 2127457,
- 2127458,
- 2127464,
- 2127465,
- 2127466,
- 2127463,
- 2127468,
- 2127472,
- 2127474,
- 2127478,
- 2127480,
- 2127484,
- 2127488,
- 2127491,
- 2127496,
- 2127499,
- 2127502,
- 2127510,
- 2127507,
- 2127513,
- 2127514,
- 2127536,
- 2127540,
- 2127544,
- 2127545,
- 2127546,
- 2127554,
- 2127565,
- 2127574,
- 2127570,
- 2127582,
- 2127585,
- 2127589,
- 2127591,
- 2127594,
- 2131503,
- 2127611,
- 2127624,
- 2127623,
- 2127620,
- 2127657,
- 2127652,
- 4224798,
- 2127653,
- 2127654,
- 2127643,
- 2127671,
- 2127672,
- 2127687,
- 2127706,
- 2127720,
- 2127723,
- 2127707,
- 2127717,
- 2127743,
- 2127742,
- 2127737,
- 2127758,
- 2127755,
- 2127761,
- 2127776,
- 2127774,
- 2127792,
- 2127798,
- 2127801,
- 2127807,
- 2127804,
- 2127805,
- 2127803,
- 2127815,
- 2127821,
- 2127831,
- 2127834,
- 2127836,
- 2127843,
- 2127854,
- 2127868,
- 2127884,
- 2127890,
- 2128166,
- 2127904,
- 2128170,
- 2127941,
- 2128014,
- 2127988,
- 2128006,
- 2127996,
- 2128026,
- 2128012,
- 2128035,
- 2128053,
- 2128042,
- 2128047,
- 2128081,
- 2128070,
- 2128075,
- 2128084,
- 2128062,
- 2128060,
- 2128069,
- 2128074,
- 2128108,
- 2128103,
- 2128090,
- 2128125,
- 2128116,
- 2128135,
- 2128146,
- 2128145,
- 2128153,
- 2128172,
- 2128171,
- 2128192,
- 2128224,
- 2128215,
- 2128223,
- 2128218,
- 2128213,
- 2128211,
- 2128250,
- 2128255,
- 2128266,
- 2128285,
- 2128295,
- 2137931,
- 2128298,
- 2128302,
- 2128307,
- 2128313,
- 2128314,
- 2128329,
- 2128341,
- 2128359,
- 2128364,
- 2128353,
- 2128355,
- 2128392,
- 2128397,
- 2128408,
- 2128409,
- 2128416,
- 2128415,
- 2128256,
- 2128433,
- 2128443,
- 2128446,
- 2128439,
- 2128451,
- 2128471,
- 2128457,
- 2128481,
- 2128482,
- 2128489,
- 2138013,
- 2128496,
- 2128505,
- 2128509,
- 2128520,
- 2128535,
- 2128533,
- 2128536,
- 2128534,
- 2128553,
- 2128584,
- 2128560,
- 2128566,
- 2128581,
- 2128580,
- 2128575,
- 2134147,
- 2128583,
- 2128586,
- 2128589,
- 2128591,
- 2128597,
- 2128595,
- 2128601,
- 2128602,
- 2128605,
- 2128609,
- 2128610,
- 2128614,
- 2128621,
- 2128624,
- 2128642,
- 2128655,
- 2128650,
- 2128646,
- 2128691,
- 2128664,
- 2128665,
- 2128670,
- 2128693,
- 2128680,
- 2128694,
- 2128720,
- 2128762,
- 2128644,
- 2128717,
- 2128651,
- 2128716,
- 2128709,
- 2128757,
- 2128741,
- 2128756,
- 2128743,
- 2128752,
- 2128753,
- 2128748,
- 2128750,
- 2128797,
- 2128792,
- 2128799,
- 2128781,
- 2128796,
- 2128794,
- 2128779,
- 2128786,
- 2128783,
- 2128733,
- 2128793,
- 2128843,
- 2128833,
- 2128844,
- 2128847,
- 2128820,
- 2128838,
- 2128861,
- 2128873,
- 2128913,
- 2128916,
- 2128870,
- 2128869,
- 2128992,
- 2128896,
- 2128903,
- 2128915,
- 2128883,
- 2128887,
- 2128919,
- 2128909,
- 2128886,
- 2128931,
- 2128935,
- 2128938,
- 2128927,
- 2128951,
- 2128939,
- 2128957,
- 2128972,
- 2128963,
- 2128980,
- 2128975,
- 2128960,
- 2128976,
- 2128984,
- 2128991,
- 2128996,
- 2128982,
- 2128997,
- 2129004,
- 2129013,
- 2129027,
- 2129040,
- 2129060,
- 2129069,
- 2129058,
- 2129067,
- 2129057,
- 2129064,
- 2129075,
- 2129074,
- 2129073,
- 2129070,
- 2129081,
- 2129085,
- 2129088,
- 2129093,
- 2129090,
- 2129112,
- 2129106,
- 2129116,
- 2129122,
- 2136891,
- 2129135,
- 2129138,
- 2129140,
- 2129142,
- 2129146,
- 2129158,
- 2129154,
- 2129180,
- 2129173,
- 2129162,
- 2129221,
- 2129227,
- 2129198,
- 2129202,
- 2129215,
- 2129205,
- 2129222,
- 2129267,
- 2129238,
- 2129230,
- 2129266,
- 2129256,
- 2129262,
- 2129231,
- 2129251,
- 2129299,
- 2129289,
- 2129243,
- 2129295,
- 2129277,
- 2129307,
- 2129338,
- 2129326,
- 2129315,
- 2129333,
- 2129351,
- 2129341,
- 2129323,
- 2129469,
- 2129314,
- 2129327,
- 2129372,
- 2129336,
- 2129311,
- 2129328,
- 2129368,
- 2129373,
- 2129380,
- 2129374,
- 2129403,
- 2129394,
- 2129377,
- 2129413,
- 2129418,
- 2129443,
- 2129441,
- 2129426,
- 2129457,
- 2129439,
- 2129417,
- 2129419,
- 2129442,
- 2129478,
- 2129510,
- 2129467,
- 2129461,
- 2129465,
- 2129475,
- 2129463,
- 2129458,
- 2129466,
- 2129511,
- 2129501,
- 2129494,
- 2129502,
- 2129497,
- 2129498,
- 2129529,
- 2129514,
- 2129513,
- 2129532,
- 2129531,
- 2129539,
- 2129365,
- 2129533,
- 2133934,
- 2129535,
- 2129544,
- 2129545,
- 2129548,
- 2129554,
- 2129552,
- 2129555,
- 2129556,
- 2129558,
- 2129550,
- 2129563,
- 2129564,
- 2129720,
- 2129722,
- 2129733,
- 2129740,
- 2129741,
- 2129742,
- 2129744,
- 2129745,
- 2129749,
- 2129748,
- 2129752,
- 2129759,
- 2129760,
- 2129768,
- 2129769,
- 2129767,
- 2129784,
- 2129794,
- 2129798,
- 2129795,
- 2129800,
- 2129799,
- 2129804,
- 2129812,
- 2129822,
- 2129821,
- 2129818,
- 2129827,
- 2129839,
- 2129842,
- 2129849,
- 2129838,
- 2129846,
- 2129848,
- 2132849,
- 2129861,
- 2129862,
- 2129866,
- 2129877,
- 2129876,
- 2129889,
- 2129894,
- 2129897,
- 2129907,
- 2129913,
- 2136284,
- 2129926,
- 2129924,
- 2129931,
- 2129938,
- 2129944,
- 2129945,
- 2129948,
- 2129953,
- 2129960,
- 2129983,
- 2129979,
- 2129994,
- 2129990,
- 2130002,
- 2130008,
- 2130010,
- 2130015,
- 2130018,
- 2130024,
- 2130035,
- 2130034,
- 2130032,
- 2130038,
- 2130041,
- 2130045,
- 2130047,
- 2130052,
- 2130054,
- 2130053,
- 2130075,
- 2130067,
- 2130074,
- 2130093,
- 2118032,
- 2130092,
- 2130139,
- 2130149,
- 2130137,
- 2130141,
- 2130116,
- 2130138,
- 2130134,
- 2130185,
- 2130159,
- 2130161,
- 2130203,
- 2130217,
- 2130211,
- 2130223,
- 2130251,
- 2135691,
- 2130246,
- 2130238,
- 2130259,
- 2130257,
- 2130172,
- 2130289,
- 2130286,
- 2130277,
- 2130278,
- 2130292,
- 2130307,
- 2130312,
- 2130314,
- 2130304,
- 2130306,
- 2130336,
- 2130325,
- 2130340,
- 2130339,
- 2130271,
- 2130323,
- 2130345,
- 2130352,
- 2130357,
- 2130366,
- 2130360,
- 2130365,
- 2130368,
- 2130370,
- 2130362,
- 2130377,
- 2130381,
- 2130385,
- 2130393,
- 2130392,
- 2130376,
- 2130394,
- 2130399,
- 2130400,
- 2130407,
- 2130426,
- 2130427,
- 2130430,
- 2130433,
- 2130434,
- 2130437,
- 2130439,
- 2130442,
- 2130445,
- 2130448,
- 2130454,
- 2130473,
- 2130475,
- 2130488,
- 2130483,
- 2130496,
- 2130521,
- 2130520,
- 2130525,
- 2130522,
- 2130527,
- 2130532,
- 2130530,
- 2130536,
- 2130538,
- 2130539,
- 2130478,
- 2130545,
- 2130551,
- 2130552,
- 2130558,
- 2130573,
- 2130578,
- 2130603,
- 2130591,
- 2130619,
- 2130604,
- 2130657,
- 2130659,
- 2130655,
- 2130642,
- 2130676,
- 2130675,
- 2130682,
- 2130835,
- 2130691,
- 2130683,
- 2130681,
- 2130654,
- 2130694,
- 2130652,
- 2130697,
- 2130649,
- 2130741,
- 2130740,
- 2130710,
- 2130738,
- 2130737,
- 2130752,
- 2130745,
- 2130768,
- 2130757,
- 2130735,
- 2130731,
- 2130711,
- 2130712,
- 2130821,
- 2130842,
- 2130858,
- 2130847,
- 2130850,
- 2130838,
- 2130723,
- 2130830,
- 2130823,
- 2130826,
- 2130812,
- 2130869,
- 2130803,
- 2130805,
- 2130848,
- 2130825,
- 2130856,
- 2130932,
- 2130963,
- 2130923,
- 2130894,
- 2130941,
- 2130947,
- 2130904,
- 2130955,
- 2130881,
- 2130935,
- 2130951,
- 2130912,
- 2130930,
- 2130957,
- 2130978,
- 2130976,
- 2130877,
- 2131000,
- 2131206,
- 2130939,
- 2131053,
- 2130986,
- 2131004,
- 2131290,
- 2131076,
- 2131063,
- 2131051,
- 2131117,
- 2131054,
- 2131074,
- 2131049,
- 2131014,
- 2130988,
- 2131055,
- 2131065,
- 2130997,
- 2131146,
- 2131042,
- 2131129,
- 2131135,
- 2131103,
- 2131161,
- 2131149,
- 2131131,
- 2131162,
- 2131152,
- 2131137,
- 2131142,
- 2131158,
- 2131105,
- 2131233,
- 2131199,
- 2131188,
- 2131223,
- 2131224,
- 2131244,
- 2131231,
- 2131221,
- 2131220,
- 2131196,
- 2131264,
- 2131299,
- 2131288,
- 2131272,
- 2131265,
- 2131458,
- 2131275,
- 2131285,
- 2131328,
- 2131364,
- 2131336,
- 2131345,
- 2131338,
- 2131368,
- 2131309,
- 2131348,
- 2131355,
- 2131434,
- 2131335,
- 2131356,
- 2131319,
- 2131326,
- 2131344,
- 2131401,
- 2131386,
- 2131407,
- 2131385,
- 2131408,
- 2131413,
- 2131421,
- 2131429,
- 2131420,
- 2131449,
- 2131466,
- 2131475,
- 2131467,
- 2131454,
- 2131450,
- 2131462,
- 2131490,
- 2131482,
- 2131504,
- 2131519,
- 2131533,
- 2117205,
- 2131540,
- 2131551,
- 2131559,
- 2131569,
- 2131603,
- 2131619,
- 2131625,
- 2131626,
- 2131595,
- 2131596,
- 2131638,
- 2131631,
- 2131652,
- 2131654,
- 2131632,
- 2131657,
- 2132003,
- 2131627,
- 2131668,
- 2131678,
- 2131689,
- 2131692,
- 2131679,
- 2131675,
- 2131695,
- 2131730,
- 2131718,
- 2131720,
- 2131712,
- 2131715,
- 2131707,
- 2131729,
- 2131721,
- 2131725,
- 2131705,
- 2131722,
- 2131764,
- 2131775,
- 2131767,
- 2131771,
- 2131749,
- 2131753,
- 2131738,
- 2131808,
- 2131807,
- 2131832,
- 2131788,
- 2131790,
- 2131828,
- 2131799,
- 2131816,
- 2131822,
- 2131801,
- 2131795,
- 2131811,
- 2131818,
- 2131973,
- 2131874,
- 2131871,
- 2131842,
- 2131887,
- 2131915,
- 2131901,
- 2131904,
- 2131920,
- 2135766,
- 2131883,
- 2131908,
- 2131891,
- 2131911,
- 2131910,
- 2131899,
- 2131951,
- 2131954,
- 2131936,
- 2131983,
- 2131981,
- 2131966,
- 2131958,
- 2131959,
- 2131982,
- 2131922,
- 2131985,
- 2131990,
- 2131989,
- 2132002,
- 2132001,
- 2132017,
- 2132022,
- 2132025,
- 2132007,
- 2132027,
- 2132036,
- 2132034,
- 2132050,
- 2132057,
- 2132062,
- 2132066,
- 2132075,
- 2132097,
- 2132094,
- 2132126,
- 2132085,
- 2132093,
- 2132149,
- 2132082,
- 2132098,
- 2132119,
- 2132114,
- 2132142,
- 2132121,
- 2132130,
- 2132109,
- 2132132,
- 2132144,
- 2132159,
- 2132145,
- 2132163,
- 2132164,
- 2132180,
- 2132184,
- 2132185,
- 2132189,
- 2132217,
- 2132226,
- 2132220,
- 2132212,
- 2132200,
- 2132210,
- 2132228,
- 2132236,
- 2132234,
- 2132243,
- 2132291,
- 2132254,
- 2132261,
- 2132266,
- 2132267,
- 2132289,
- 2132292,
- 2132283,
- 2132278,
- 2132280,
- 2132300,
- 2132253,
- 2132320,
- 2132318,
- 2132326,
- 2132324,
- 2132333,
- 2132330,
- 2132335,
- 2132340,
- 2132343,
- 2132350,
- 2132355,
- 2132360,
- 2132362,
- 2132371,
- 2132376,
- 2132385,
- 2132393,
- 2132390,
- 2132396,
- 2132399,
- 2132402,
- 2132410,
- 2132413,
- 2132415,
- 2132416,
- 2132442,
- 2132444,
- 2132445,
- 2132455,
- 2132468,
- 2132472,
- 2132483,
- 2132502,
- 2132496,
- 2132492,
- 2132507,
- 2132509,
- 2132517,
- 2132534,
- 2132545,
- 2132571,
- 2132562,
- 2132550,
- 2132552,
- 2132604,
- 2132589,
- 2132588,
- 2132578,
- 2132613,
- 2132610,
- 2132612,
- 2132648,
- 2132641,
- 2132625,
- 2132645,
- 2132646,
- 2132634,
- 2132643,
- 2132676,
- 2132685,
- 2132674,
- 2132698,
- 2132715,
- 2132723,
- 2132711,
- 2132708,
- 2132721,
- 2132756,
- 2132704,
- 2132706,
- 2132727,
- 2132702,
- 2132699,
- 2132748,
- 2132743,
- 2132762,
- 2132705,
- 2132758,
- 2132752,
- 2132759,
- 2132768,
- 2132787,
- 2135979,
- 2132774,
- 2132779,
- 2132798,
- 2132776,
- 2132801,
- 2132812,
- 2132815,
- 2132814,
- 2132809,
- 2132822,
- 2132827,
- 2132826,
- 2132843,
- 2132831,
- 2132844,
- 2132847,
- 2132852,
- 2132861,
- 2132864,
- 2132876,
- 2132878,
- 2132882,
- 2132883,
- 2132886,
- 2132889,
- 2132890,
- 2133050,
- 2133057,
- 2133055,
- 2133064,
- 2133068,
- 2133070,
- 2133072,
- 2133077,
- 2133090,
- 2133100,
- 2133112,
- 2133114,
- 2133122,
- 2133129,
- 2133125,
- 2133130,
- 2133133,
- 2133134,
- 2133140,
- 2133116,
- 2133144,
- 2122269,
- 2133165,
- 2133162,
- 2133181,
- 2133170,
- 2133171,
- 2133166,
- 2133174,
- 2133192,
- 2133185,
- 2133220,
- 2133219,
- 2133210,
- 2133245,
- 2133242,
- 2133243,
- 2133252,
- 2133253,
- 2133258,
- 2133255,
- 2133263,
- 2133261,
- 2133264,
- 2137934,
- 2133267,
- 2133197,
- 2133268,
- 2133270,
- 2133351,
- 2133357,
- 2133361,
- 2133363,
- 2133377,
- 2133401,
- 2133442,
- 2133438,
- 2133434,
- 2133455,
- 2133466,
- 2133462,
- 2133452,
- 2133467,
- 2133451,
- 2133482,
- 2133483,
- 2133471,
- 2133475,
- 2133500,
- 2133512,
- 2133513,
- 2133503,
- 2133533,
- 2133534,
- 2133520,
- 2133535,
- 2133570,
- 2133557,
- 2133552,
- 2133556,
- 2133578,
- 2133575,
- 2133577,
- 2133580,
- 2133584,
- 2133576,
- 2133593,
- 2133604,
- 2133600,
- 2133546,
- 2133603,
- 2133589,
- 2133622,
- 2133618,
- 2133628,
- 2133633,
- 2133639,
- 2133637,
- 2133636,
- 2133643,
- 2133642,
- 2133651,
- 2133649,
- 2133652,
- 2133657,
- 2133674,
- 2133665,
- 2133676,
- 2133680,
- 2133702,
- 2133681,
- 2133694,
- 2133701,
- 2133704,
- 2133707,
- 2133723,
- 2133731,
- 2133756,
- 2133755,
- 2133739,
- 2133758,
- 2133770,
- 2133765,
- 2133781,
- 2133778,
- 2133785,
- 2133779,
- 2133788,
- 2133791,
- 2133787,
- 2133772,
- 2133798,
- 2133811,
- 2133819,
- 2133817,
- 2133829,
- 2133826,
- 2133822,
- 2133836,
- 2133833,
- 2133830,
- 2133838,
- 2133847,
- 2133852,
- 2133858,
- 2133859,
- 2133860,
- 2133916,
- 2133919,
- 2133923,
- 2133933,
- 2133935,
- 2133943,
- 2133978,
- 2133989,
- 2133986,
- 2133994,
- 2133999,
- 2134151,
- 2134004,
- 2134021,
- 2134009,
- 2134010,
- 2134033,
- 2134037,
- 2134049,
- 2134029,
- 2134046,
- 2134038,
- 2134027,
- 2134055,
- 2134070,
- 2134069,
- 2134073,
- 2134008,
- 2134095,
- 2134096,
- 2134097,
- 2134098,
- 2134030,
- 2134089,
- 2134078,
- 2134102,
- 2134104,
- 2134110,
- 2134120,
- 2134127,
- 2134134,
- 2135720,
- 2134130,
- 2134146,
- 2134141,
- 2134145,
- 2134144,
- 2134154,
- 2134153,
- 2134159,
- 2134184,
- 2134191,
- 2134193,
- 2134197,
- 2134242,
- 2134244,
- 2122312,
- 2134235,
- 2134274,
- 2134290,
- 2134297,
- 2134322,
- 2134320,
- 2134346,
- 2134358,
- 2134360,
- 2134371,
- 2134373,
- 2134377,
- 2134387,
- 2134386,
- 2134411,
- 2134409,
- 2134402,
- 2134434,
- 2134443,
- 2134447,
- 2134442,
- 2134453,
- 2134452,
- 2134458,
- 2134464,
- 2134465,
- 2134473,
- 2134475,
- 2134480,
- 2134486,
- 2134495,
- 2134497,
- 2134491,
- 2134524,
- 2134517,
- 2134518,
- 2134558,
- 2134527,
- 2134548,
- 2134572,
- 2134549,
- 2134545,
- 2134622,
- 2134615,
- 2134597,
- 2134601,
- 2134628,
- 2134600,
- 2134677,
- 2134591,
- 2134603,
- 2134608,
- 2134684,
- 2134678,
- 2134675,
- 2134683,
- 2134618,
- 2134735,
- 2134713,
- 2134711,
- 2134761,
- 2134799,
- 2134778,
- 2134852,
- 2134830,
- 2134809,
- 2134818,
- 2134810,
- 2134819,
- 2134842,
- 2134837,
- 2134843,
- 2134876,
- 2134880,
- 2134908,
- 2134894,
- 2134870,
- 2134960,
- 2134956,
- 2134957,
- 2134932,
- 2134969,
- 2134998,
- 2134999,
- 2135016,
- 2135013,
- 2135000,
- 2134979,
- 2135005,
- 2134992,
- 2134984,
- 2135012,
- 2135066,
- 2135060,
- 2135059,
- 2135043,
- 2135047,
- 2135056,
- 2135094,
- 2135083,
- 2135093,
- 2135073,
- 2135098,
- 2135105,
- 2135122,
- 2135108,
- 2135131,
- 2135136,
- 2135138,
- 2135134,
- 2135146,
- 2134569,
- 2135152,
- 2135157,
- 2135159,
- 2135165,
- 2135130,
- 2135164,
- 2135166,
- 2135169,
- 2135167,
- 2135426,
- 2135431,
- 2135434,
- 2135444,
- 2135446,
- 2135448,
- 2135449,
- 2135456,
- 2135464,
- 2135463,
- 2135469,
- 2135484,
- 2135483,
- 2135481,
- 2135486,
- 2135498,
- 2125814,
- 2135491,
- 2135501,
- 2135500,
- 2135509,
- 2135508,
- 2135510,
- 2135516,
- 2135521,
- 2135525,
- 2135522,
- 2135585,
- 2135592,
- 2135598,
- 2135599,
- 2135618,
- 2135628,
- 2135631,
- 2135627,
- 2135671,
- 2135644,
- 2135646,
- 2135645,
- 2135647,
- 2135654,
- 2135666,
- 2135660,
- 2135693,
- 2135704,
- 2135701,
- 2135703,
- 2135722,
- 2135719,
- 2135729,
- 2135730,
- 2135728,
- 2135732,
- 2135734,
- 2135736,
- 2135737,
- 2135758,
- 2135755,
- 2135753,
- 2135757,
- 2132301,
- 2135772,
- 2135821,
- 2135765,
- 2135801,
- 2135812,
- 2135814,
- 2135816,
- 2135827,
- 2135822,
- 2135825,
- 2135823,
- 2135830,
- 2135833,
- 2135844,
- 2135850,
- 2135856,
- 2135865,
- 2135869,
- 2135870,
- 2135876,
- 2135878,
- 2135880,
- 2135874,
- 2135881,
- 2135900,
- 2135904,
- 2135908,
- 2135910,
- 2135912,
- 2118354,
- 2135915,
- 2135921,
- 2135929,
- 2135941,
- 2135932,
- 2135937,
- 2135930,
- 2135942,
- 2135947,
- 2135951,
- 2135952,
- 2135964,
- 2135976,
- 2135974,
- 2135971,
- 2135987,
- 2135988,
- 2136003,
- 2136006,
- 2136008,
- 2136011,
- 2136028,
- 2136045,
- 2137935,
- 2136050,
- 2128607,
- 2136054,
- 2136053,
- 2136079,
- 2136076,
- 2136120,
- 2136100,
- 2136097,
- 2136119,
- 2136125,
- 2136134,
- 2136143,
- 2136139,
- 2136171,
- 2136175,
- 2136176,
- 2136177,
- 2136180,
- 2136179,
- 2136234,
- 2136239,
- 2136241,
- 2136246,
- 2136260,
- 2136259,
- 2136262,
- 2136297,
- 2136299,
- 2136323,
- 2136329,
- 2136338,
- 2136340,
- 2136344,
- 2136353,
- 2136349,
- 2136350,
- 2136356,
- 2136352,
- 2136364,
- 2136366,
- 2136381,
- 2136382,
- 2136386,
- 2136393,
- 2136389,
- 2136400,
- 2136395,
- 2136401,
- 2136402,
- 2136396,
- 2136405,
- 2136471,
- 2136472,
- 2136485,
- 2136493,
- 2136494,
- 2136508,
- 2136543,
- 2136539,
- 2136541,
- 2136536,
- 2136529,
- 2136557,
- 2136558,
- 2136561,
- 2136562,
- 2136571,
- 2136568,
- 2136577,
- 2136591,
- 2136581,
- 2136546,
- 2136601,
- 2136619,
- 2136631,
- 2136645,
- 2136642,
- 2136640,
- 2136643,
- 2136638,
- 2136661,
- 2136653,
- 2136667,
- 2136663,
- 2136671,
- 2136674,
- 2136677,
- 2136676,
- 2136681,
- 2136683,
- 2136682,
- 2136749,
- 2136752,
- 2136764,
- 2136768,
- 2136783,
- 2136785,
- 2136787,
- 2136788,
- 2136798,
- 2136799,
- 2136802,
- 2136803,
- 2136806,
- 2136815,
- 2136811,
- 2136814,
- 2136820,
- 2136817,
- 2136823,
- 2136827,
- 2136838,
- 2136856,
- 2136858,
- 2136863,
- 2136866,
- 2136867,
- 2136869,
- 2136871,
- 2136872,
- 2136873,
- 2136874,
- 2136878,
- 2136879,
- 2136882,
- 2136900,
- 2136899,
- 2136911,
- 2136909,
- 2136910,
- 2136913,
- 2136920,
- 2136948,
- 2136979,
- 2136963,
- 2136977,
- 2136982,
- 2136983,
- 2136991,
- 2136992,
- 2137000,
- 2137012,
- 2137024,
- 2137034,
- 2137017,
- 2137030,
- 2137039,
- 2137041,
- 2137042,
- 2137059,
- 2137058,
- 2137060,
- 2137044,
- 2137057,
- 2137146,
- 2137074,
- 2137073,
- 2137072,
- 2137109,
- 2137108,
- 2137097,
- 2137107,
- 2137100,
- 2137094,
- 2137096,
- 2137106,
- 2137098,
- 2137092,
- 2137134,
- 2137115,
- 2137125,
- 2137124,
- 2137121,
- 2137136,
- 2137159,
- 2137138,
- 2137158,
- 2137150,
- 2137178,
- 2137184,
- 2137191,
- 2137206,
- 2137208,
- 2137319,
- 2137324,
- 2137328,
- 2137353,
- 2137352,
- 2137323,
- 2137347,
- 2137350,
- 2137386,
- 2137382,
- 2137519,
- 2137379,
- 2137375,
- 2137412,
- 2137365,
- 2137362,
- 2137409,
- 2137407,
- 2137406,
- 2137414,
- 2137416,
- 2137437,
- 2137438,
- 2137444,
- 2137425,
- 2137424,
- 2137433,
- 2137458,
- 2137481,
- 2137479,
- 2137515,
- 2137455,
- 2137466,
- 2137498,
- 2137508,
- 2137513,
- 2137522,
- 2137540,
- 2137537,
- 2137531,
- 2137528,
- 2137530,
- 2137542,
- 2137551,
- 2137538,
- 2137561,
- 2137555,
- 2137592,
- 2137574,
- 2137581,
- 2137583,
- 2137597,
- 2137626,
- 2137627,
- 2137630,
- 2137717,
- 2137721,
- 2137725,
- 2137729,
- 2137736,
- 2137739,
- 2137740,
- 2137746,
- 2137749,
- 2137745,
- 2137757,
- 2137765,
- 2137769,
- 2137784,
- 2137770,
- 2137773,
- 2135905,
- 2137804,
- 2137806,
- 2137807,
- 2137808,
- 2137812,
- 2137820,
- 2137822,
- 2137821,
- 2137824,
- 2137829,
- 2137832,
- 2137839,
- 2137844,
- 2137846,
- 2137847,
- 2137849,
- 2137851,
- 2137852,
- 2137853,
- 2137863,
- 2137864,
- 2127543,
- 2137877,
- 2137889,
- 2137900,
- 2137918,
- 2137930,
- 2137938,
- 2137940,
- 2137955,
- 2137951,
- 2137952,
- 2137953,
- 2137958,
- 2137959,
- 2137964,
- 2137962,
- 2137975,
- 2137970,
- 2137974,
- 2138005,
- 2138012,
- 2138016,
- 2119727,
- 2124231,
- 2134105,
- 2126948,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- 2119006,
- 4233460,
- 4222626,
- 4234287,
- 4222443,
- 4231106,
- 4221725,
- 4215721,
- 2264285,
- 4216386,
- 4233484,
- 2126128,
- 4229462,
- 2137559,
- 4231142,
- 4218978,
- 4219600,
- 4220518,
- 4216221,
- 4228187,
- 4233092,
- 2119321,
- 2112846,
- 4227056,
- 4227051,
- 4218813,
- 4225351,
- 2117600,
- 6312831,
- 4214981,
- 2133696,
- 4216240,
- 2124507,
- 4217937,
- 4233076,
- 4225345,
- 4219239,
- 2250868,
- 2129515,
- 2130758,
- 2264822,
- 4214822,
- 4217548,
- 4219762,
- 2137724,
- 4229882,
- 4218359,
- 2123323,
- 4222621,
- 2137780,
- 4234592,
- 4224273,
- 4231623,
- 4221322,
- 2123781,
- 4228521,
- 4234198,
- 4231942,
- 4223946,
- 4215793,
- 2120802,
- 4231278,
- 4220755,
- 4223100,
- 2129505,
- 4231499,
- 4220633,
- 2125338,
- 4228527,
- 4228599,
- 4216040,
- 4218592,
- 4221090,
- 2131235,
- 2134444,
- 4233112,
- 4228949,
- 4233073,
- 4231191,
- 4227040,
- 4220026,
- 4231197,
- 2131948,
- 4220080,
- 4220947,
- 4223310,
- 4223357,
- 4229742,
- 4216396,
- 4231265,
- 4215413,
- 2122772,
- 4224550,
- 4231260,
- 2136658,
- 4227455,
- 4234971,
- 4216132,
- 4222959,
- 2126882,
- 4228856,
- 2121213,
- 4231103,
- 4221146,
- 4234312,
- 4221501,
- 2128926,
- 4229691,
- 4223014,
- 4215243,
- 4219735,
- 4221388,
- 4232090,
- 4216922,
- 2122833,
- 4231469,
- 4220130,
- 4222650,
- 2119777,
- 2136154,
- 4216885,
- 4217952,
- 4228063,
- 4230381,
- 4216920,
- 2128305,
- 4234503,
- 2125830,
- 4223006,
- 4216440,
- 4231233,
- 4233235,
- 4231331,
- 4229902,
- 4223064,
- 4221282,
- 4225456,
- 2119370,
- 4223564,
- 4231193,
- 4225508,
- 2118237,
- 4225976,
- 2125649,
- 2134449,
- 4219709,
- 4219465,
- 4221451,
- 4220874,
- 4225559,
- 4231228,
- 4217499,
- 4229932,
- 4218591,
- 4222997,
- 2136123,
- 4228413,
- 4224933,
- 4217385,
- 4218518,
- 4222177,
- 4228332,
- 2136112,
- 4234322,
- 2137781,
- 4215090,
- 4233477,
- 4226174,
- 4232275,
- 4219144,
- 4224594,
- 4223799,
- 4223380,
- 4227072,
- 2130954,
- 4231292,
- 2125603,
- 2126153,
- 2131182,
- 4221332,
- 2131999,
- 2117972,
- 4215177,
- 2118037,
- 4215204,
- 4216121,
- 4216115,
- 4216292,
- 4216370,
- 4216485,
- 4216843,
- 4217534,
- 2234906,
- 2120795,
- 4218468,
- 4219031,
- 4219753,
- 4219910,
- 2123042,
- 4220291,
- 4220838,
- 2123770,
- 4221083,
- 2123918,
- 4222574,
- 2245584,
- 2126376,
- 4223950,
- 4224260,
- 4224269,
- 4224277,
- 4224659,
- 4225148,
- 4225585,
- 4235165,
- 4225945,
- 4226192,
- 4226222,
- 4226459,
- 4226478,
- 4226463,
- 4227028,
- 4227630,
- 4227725,
- 4227794,
- 4227875,
- 4227957,
- 4228375,
- 2131262,
- 4228994,
- 4229074,
- 4229386,
- 4229551,
- 4229854,
- 4229953,
- 4230618,
- 4230665,
- 4230931,
- 4231146,
- 4231145,
- 4231256,
- 4219464,
- 4231617,
- 4232635,
- 2127714,
- 4232996,
- 4233056,
- 4233069,
- 4233252,
- 4234030,
- 4234135,
- 4234226,
- 4234922,
- 4235164,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- 4227750,
- 4227880,
- 2119251,
- 6312873,
- 4223577,
- 4222066,
- 4225800,
- 4233559,
- 4219635,
- 4233488,
- 6330221,
- 6320509,
- 4225663,
- 4225965,
- 4219843,
- 6325215,
- 4225378,
- 4215771,
- 4225991,
- 4231108,
- 4226110,
- 4214986,
- 4215573,
- 4216233,
- 4216494,
- 4216857,
- 4217115,
- 4217896,
- 4218576,
- 4218575,
- 4219457,
- 4220609,
- 4221960,
- 4222499,
- 4222700,
- 4225687,
- 4226013,
- 4227049,
- 4228130,
- 4228953,
- 4229134,
- 6326226,
- 4233753,
- 4234925,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- 4231202,
- 4231099,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- 2118108,
- 2126233,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- 2129546,
- 2132252,
- 2134856,
- 2134664,
- 2131164,
- 2117577,
- 2126011,
- 2123313,
- 2123976,
- 2134777,
- 2123515,
- 2121541,
- 2117160,
- 2117345,
- 2117372,
- 2117376,
- 2117379,
- 2117433,
- 2117462,
- 2117522,
- 2117514,
- 2117530,
- 2117524,
- 2117581,
- 2117696,
- 2117666,
- 2117631,
- 2117662,
- 2117702,
- 2117744,
- 2117698,
- 2117780,
- 2117876,
- 2117848,
- 2117962,
- 2117988,
- 2118045,
- 2118078,
- 2118124,
- 2118165,
- 2118300,
- 2118310,
- 2118336,
- 2118363,
- 2118400,
- 4215559,
- 2118436,
- 2118514,
- 2118547,
- 2118578,
- 2118621,
- 2161166,
- 2118812,
- 2118794,
- 2118825,
- 2118911,
- 2119046,
- 2119513,
- 2119525,
- 2119596,
- 2119624,
- 2119623,
- 2161167,
- 6314074,
- 2119838,
- 2119858,
- 2119947,
- 2120019,
- 2120027,
- 2120029,
- 2120035,
- 2120100,
- 2120122,
- 2120534,
- 2120640,
- 2127151,
- 2120664,
- 4217819,
- 2120734,
- 2120870,
- 2120890,
- 2120949,
- 2120999,
- 2121043,
- 4258321,
- 2121026,
- 2121069,
- 2121144,
- 2121145,
- 2121168,
- 2121505,
- 2121524,
- 2121575,
- 2121655,
- 2121694,
- 2121821,
- 2121861,
- 2121866,
- 2121950,
- 2121941,
- 2122016,
- 2121970,
- 2122001,
- 2122039,
- 2122032,
- 2122136,
- 2122259,
- 2122406,
- 2122741,
- 2122848,
- 2122909,
- 2122958,
- 2123086,
- 2123264,
- 2123285,
- 2123273,
- 2123310,
- 4220446,
- 2123300,
- 2123365,
- 2123351,
- 2123353,
- 2123380,
- 2123379,
- 2123417,
- 2123424,
- 2123442,
- 2123455,
- 2123514,
- 2123534,
- 6317847,
- 2123622,
- 2123707,
- 4221010,
- 2123712,
- 4220929,
- 2123844,
- 2123983,
- 2161171,
- 2124136,
- 2161172,
- 2124184,
- 2124258,
- 2124336,
- 2124395,
- 2124358,
- 2124403,
- 2124414,
- 2124514,
- 2124516,
- 2124758,
- 2124863,
- 2124892,
- 2124934,
- 2124911,
- 2125018,
- 2125060,
- 2125191,
- 2125167,
- 2125206,
- 2125228,
- 2125263,
- 2125304,
- 2125298,
- 2125308,
- 2125369,
- 2125404,
- 2125351,
- 2125372,
- 2125503,
- 2125704,
- 2125749,
- 2125813,
- 2125829,
- 2125831,
- 2125864,
- 2125957,
- 2125995,
- 2126095,
- 2126084,
- 2126172,
- 2126150,
- 2126151,
- 10506718,
- 2126273,
- 2126334,
- 2126513,
- 2126526,
- 2126628,
- 2126634,
- 2126711,
- 2126781,
- 2126793,
- 2126806,
- 2126819,
- 2126802,
- 2126855,
- 2126837,
- 2126886,
- 2126890,
- 2126889,
- 2126894,
- 4224098,
- 2126985,
- 2127007,
- 2127105,
- 2127215,
- 2127490,
- 2127516,
- 2127518,
- 2127515,
- 2127526,
- 4224714,
- 2127686,
- 2118319,
- 2127905,
- 2127950,
- 2127972,
- 2127994,
- 2128176,
- 4225340,
- 2128222,
- 2128229,
- 2128276,
- 4225423,
- 2128283,
- 2128593,
- 2128615,
- 4233046,
- 2128619,
- 2128798,
- 2129086,
- 2129224,
- 4226396,
- 2129335,
- 2129312,
- 2129366,
- 2129490,
- 2129735,
- 2129825,
- 2129853,
- 2130689,
- 2130786,
- 2130815,
- 2130887,
- 2130934,
- 2131016,
- 2131124,
- 2131283,
- 2131289,
- 2131307,
- 2161183,
- 2131376,
- 4228626,
- 2161185,
- 2131975,
- 2132213,
- 2132498,
- 2132535,
- 2132601,
- 2132647,
- 2132670,
- 2132703,
- 2132728,
- 2132726,
- 2132819,
- 2132863,
- 2133232,
- 2133236,
- 2133266,
- 2133366,
- 2161187,
- 2133711,
- 4258340,
- 6328376,
- 2134119,
- 2134238,
- 2134269,
- 2134293,
- 2134311,
- 2134490,
- 2134487,
- 2134494,
- 2134509,
- 2134510,
- 2134500,
- 2134501,
- 2134534,
- 2134544,
- 2134538,
- 2134586,
- 2134592,
- 2134588,
- 2134606,
- 2134617,
- 2134609,
- 2134585,
- 2134631,
- 2134695,
- 2134647,
- 2134648,
- 2134759,
- 2134743,
- 2134745,
- 2134736,
- 2161191,
- 2134741,
- 2134752,
- 2134739,
- 2134821,
- 2134817,
- 2134779,
- 2161192,
- 2134814,
- 2134783,
- 2134813,
- 2134786,
- 2134896,
- 2134871,
- 2134948,
- 2134982,
- 2135006,
- 2135032,
- 2135089,
- 2135109,
- 2135112,
- 2135442,
- 6329990,
- 2161193,
- 2135709,
- 2135727,
- 2135859,
- 2135867,
- 2135875,
- 2135885,
- 2135887,
- 2135889,
- 4233045,
- 2136151,
- 2136165,
- 2136303,
- 4233468,
- 2136359,
- 4233512,
- 2136478,
- 2136654,
- 2136793,
- 2136796,
- 2136949,
- 2136946,
- 2136975,
- 2137009,
- 2137019,
- 2137088,
- 2137456,
- 2137451,
- 2137524,
- 2137625,
- 2137809,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- 6319336,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- 4231224,
- 2132737,
- 2129379,
- 2137795,
- 2125483,
- 2128269,
- 2121876,
- 2125175,
- 4219240,
- 2124266,
- 2125364,
- 4229392,
- 4222754,
- 4216424,
- 2123234,
- 2128200,
- 2131547,
- 4233215,
- 4215524,
- 2132793,
- 2122733,
- 2122954,
- 2127951,
- 2128448,
- 2124730,
- 4225353,
- 4229526,
- 2126190,
- 4225342,
- 4227077,
- 4227565,
- 2128221,
- 4220561,
- 2129778,
- 2125193,
- 2126528,
- 4219214,
- 2127646,
- 4225984,
- 4225366,
- 4215015,
- 4217956,
- 2121186,
- 2122126,
- 4230408,
- 2118525,
- 2119174,
- 4228183,
- 2121653,
- 4219378,
- 4232110,
- 4225422,
- 4234029,
- 4225665,
- 2135779,
- 2123909,
- 4226625,
- 2123354,
- 2118481,
- 2128017,
- 2133203,
- 2123087,
- 4214702,
- 4214645,
- 4216896,
- 2118345,
- 2124645,
- 2119848,
- 2124751,
- 4215117,
- 2122302,
- 2128208,
- 2124548,
- 4232838,
- 2131548,
- 2125274,
- 2136158,
- 2123462,
- 2124663,
- 2129396,
- 2134858,
- 6315722,
- 2134788,
- 4221314,
- 4215220,
- 4219724,
- 4228827,
- 4231305,
- 6328354,
- 4214857,
- 4226543,
- 4231253,
- 8410025,
- 6330636,
- 4229211,
- 4218614,
- 6319295,
- 4231771,
- 4227009,
- 6324925,
- 4232901,
- 4217779,
- 6316392,
- 6318466,
- 4221883,
- 4220258,
- 4230315,
- 4218316,
- 4233233,
- 4218416,
- 4230860,
- 4225710,
- 4216647,
- 4214929,
- 4225652,
- 4214885,
- 4218618,
- 4231735,
- 4221582,
- 4214436,
- 4215148,
- 4220660,
- 4220961,
- 4225132,
- 4226398,
- 4227075,
- 4230396,
- 4232781,
- 4219639,
- 4226922,
- 4214655,
- 4215794,
- 4217289,
- 4229917,
- 4231338,
- 4215758,
- 4230959,
- 4220884,
- 4224940,
- 4227612,
- 4221295,
- 4220798,
- 4229663,
- 4214280,
- 4216820,
- 4221197,
- 4227191,
- 4229546,
- 4231234,
- 4219758,
- 4219970,
- 4227641,
- 4226511,
- 4227169,
- 4214991,
- 4229781,
- 4218981,
- 4215110,
- 4224826,
- 4227188,
- 4230643,
- 4218541,
- 4218615,
- 4227655,
- 4220995,
- 4231171,
- 4222270,
- 4219794,
- 4230953,
- 4223981,
- 4233234,
- 4219058,
- 6316617,
- 4220304,
- 4226507,
- 4229817,
- 4230311,
- 4223542,
- 4228218,
- 4215302,
- 4216436,
- 4219300,
- 4226185,
- 4226331,
- 4232944,
- 6325565,
- 4214719,
- 4219751,
- 4224710,
- 4221021,
- 4227336,
- 4227126,
- 4227068,
- 4215823,
- 4232867,
- 4234911,
- 4234903,
- 4227183,
- 4227198,
- 4222590,
- 4214917,
- 4215187,
- 4215259,
- 2230542,
- 4215616,
- 4232921,
- 6313385,
- 4216513,
- 4216589,
- 4217003,
- 4217306,
- 4217398,
- 6314686,
- 4218190,
- 4218247,
- 4218313,
- 4218323,
- 4218669,
- 4218776,
- 4219096,
- 4219197,
- 4219390,
- 4219496,
- 4219599,
- 4220189,
- 4219919,
- 4220146,
- 4220253,
- 4220511,
- 4220841,
- 4220903,
- 4221291,
- 4221232,
- 4221351,
- 4221508,
- 4221584,
- 6319112,
- 4221971,
- 6319651,
- 4222737,
- 4222718,
- 4222782,
- 4223487,
- 4223973,
- 4224050,
- 4224095,
- 4224224,
- 4224268,
- 4224626,
- 4225322,
- 4225236,
- 4225466,
- 4225561,
- 4225685,
- 4226290,
- 4226419,
- 4226525,
- 4226613,
- 4226990,
- 4227041,
- 4227162,
- 4227167,
- 4227187,
- 4227184,
- 4227190,
- 4227411,
- 4227466,
- 4227509,
- 4227533,
- 4228082,
- 4228437,
- 4228565,
- 4228890,
- 4229174,
- 4229278,
- 4229336,
- 4229364,
- 4229419,
- 4229435,
- 4229482,
- 4229487,
- 4229661,
- 4230405,
- 4230415,
- 4235086,
- 4230801,
- 4230817,
- 4231250,
- 4231182,
- 4231472,
- 4231510,
- 4231512,
- 4231525,
- 4231539,
- 4231538,
- 4231586,
- 4231599,
- 4231594,
- 4231604,
- 4231610,
- 4232311,
- 4232856,
- 4233021,
- 6330208,
- 6330225,
- 4233228,
- 4233331,
- 4233411,
- 4233797,
- 4234061,
- 4234072,
- 4234182,
- 4234209,
- 4234225,
- 4234568,
- 4234703,
- 4235016,
- 4219505,
- 4220567,
- 4219151,
- 4229219,
- 6328405,
- 4231290,
- 4225263,
- 2133151,
- 4232936,
- 2255185,
- 10507177,
- 4224220,
- 4231243,
- 8427788,
- 2275288,
- 2134707,
- 2135473,
- 6315766,
- 4219892,
- 2124991,
- 4223321,
- 4231264,
- 6328923,
- 4220348,
- 4218752,
- 6324161,
- 4215672,
- 4233203,
- 4215574,
- 4227761,
- 4228051,
- 4230312,
- 4231246,
- 2130621,
- 6330053,
- 4233491,
- 4218619,
- 4223088,
- 6314931,
- 8413544,
- 10510696,
- 12607848,
- 4221418,
- 8415618,
- 2123630,
- 2132434,
- 4232852,
- 2118258,
- 4230980,
- 4232076,
- 4227781,
- 4217810,
- 4224176,
- 4226537,
- 2253346,
- 4231300,
- 4232594,
- 4233171,
- 4227608,
- 4215665,
- 4207618,
- 2110466,
- 6304770,
- 4218494,
- 2123235,
- 4220703,
- 4221535,
- 4230519,
- 4233442,
- 2231223,
- 4216235,
- 4228688,
- 4231174,
- 4215754,
- 4215864,
- 4218917,
- 4226330,
- 4218344,
- 4219602,
- 4230621,
- 2268491,
- 4365643,
- 2118527,
- 2121530,
- 4218960,
- 4221377,
- 4339258,
- 2275214,
- 4231415,
- 6330367,
- 6330711,
- 4220545,
- 4223883,
- 4231121,
- 2117617,
- 4225001,
- 4215159,
- 4228702,
- 4225658,
- 4231239,
- 6318811,
- 4216147,
- 4217169,
- 4218997,
- 6316391,
- 4231118,
- 6312081,
- 4222804,
- 6322804,
- 4220680,
- 4227615,
- 4215164,
- 4215352,
- 4219314,
- 2123587,
- 4227241,
- 4229913,
- 4231267,
- 2230884,
- 2132481,
- 2122294,
- 4232903,
- 4233319,
- 2118707,
- 2120219,
- 4229796,
- 4218341,
- 4219212,
- 2122373,
- 4219815,
- 4221387,
- 4222313,
- 4222511,
- 4227093,
- 4227412,
- 4227922,
- 4229915,
- 6327548,
- 2118719,
- 4231543,
- 4227440,
- 6321425,
- 4231100,
- 2275142,
- 4232086,
- 2275191,
- 4218729,
- 4219809,
- 2124658,
- 4228060,
- 6312372,
- 4215986,
- 4215370,
- 2127138,
- 2116408,
- 4217343,
- 6314495,
- 2121215,
- 4229870,
- 6327022,
- 4230343,
- 6327495,
- 4221729,
- 6318881,
- 4222667,
- 2126778,
- 2231199,
- 4219752,
- 4220316,
- 6328490,
- 2118394,
- 6320693,
- 2126389,
- 4231500,
- 4218673,
- 4214331,
- 4215767,
- 4219784,
- 2118760,
- 4226370,
- 4227026,
- 4229190,
- 4231217,
- 4214607,
- 4229203,
- 4231152,
- 4218337,
- 4231285,
- 6328437,
- 4219456,
- 4220664,
- 4217203,
- 4215517,
- 4216134,
- 4217781,
- 2120710,
- 4217871,
- 2282820,
- 2120729,
- 4222344,
- 4225117,
- 4227222,
- 2228235,
- 2120578,
- 2119630,
- 4219077,
- 6313972,
- 4233470,
- 6318349,
- 4221846,
- 4233439,
- 2136288,
- 2266751,
- 2111373,
- 4214709,
- 2111738,
- 4222328,
- 4224799,
- 4231218,
- 2117307,
- 2228642,
- 4215299,
- 4217867,
- 4229642,
- 6326794,
- 4231109,
- 2286953,
- 6328386,
- 2110751,
- 2275153,
- 4219408,
- 4224731,
- 4227158,
- 2132352,
- 4229792,
- 4229835,
- 4233052,
- 6330204,
- 2128389,
- 4227334,
- 4232891,
- 4226125,
- 6323136,
- 2132650,
- 4232938,
- 2129237,
- 4219463,
- 2125720,
- 4226977,
- 6324793,
- 4231288,
- 4231287,
- 4215373,
- 4215144,
- 4219779,
- 2122743,
- 2127398,
- 4230512,
- 4231169,
- 4231277,
- 4231200,
- 2260919,
- 4231199,
- 4230346,
- 4217866,
- 6315018,
- 4217253,
- 2243838,
- 4231168,
- 4231214,
- 4232842,
- 4234203,
- 4217127,
- 2110503,
- 4223015,
- 4231252,
- 2130219,
- 4214329,
- 4221774,
- 4223149,
- 6326933,
- 4220566,
- 4214820,
- 4226926,
- 4225993,
- 2251479,
- 4225873,
- 4231184,
- 4220913,
- 4222184,
- 4233680,
- 4218731,
- 4218805,
- 6316530,
- 4220701,
- 2125678,
- 4229823,
- 4224756,
- 4220693,
- 6317845,
- 4216988,
- 4231165,
- 4231194,
- 4216682,
- 4231651,
- 4215880,
- 4218397,
- 4225547,
- 4224644,
- 4231273,
- 4231149,
- 4222459,
- 4215118,
- 4231188,
- 4225082,
- 2119457,
- 2232893,
- 2118060,
- 4216080,
- 2129110,
- 4228580,
- 4229892,
- 6328323,
- 4231183,
- 4233776,
- 4217870,
- 4231251,
- 2118686,
- 2112392,
- 2117991,
- 4227209,
- 4214387,
- 4218829,
- 4229773,
- 2120679,
- 4226317,
- 4229511,
- 6319422,
- 4227258,
- 4215642,
- 4228484,
- 4231147,
- 4226587,
- 4227207,
- 2117175,
- 4222801,
- 4231601,
- 4214580,
- 4215332,
- 4215626,
- 4218374,
- 4224340,
- 4220521,
- 4228419,
- 4231295,
- 4218798,
- 4235067,
- 4215609,
- 2247956,
- 2121573,
- 2120172,
- 4217324,
- 4229717,
- 2121369,
- 4224453,
- 4217446,
- 4220279,
- 4222318,
- 4230304,
- 6327456,
- 4220685,
- 4229510,
- 4214297,
- 4218467,
- 4218483,
- 4218634,
- 4228369,
- 4214863,
- 4226536,
- 4231124,
- 4231245,
- 4226111,
- 4215557,
- 4218153,
- 4219569,
- 4220683,
- 4225074,
- 4226603,
- 4227294,
- 4228108,
- 4231334,
- 6328486,
- 4233469,
- 4234604,
- 4214433,
- 4218429,
- 4218840,
- 4218841,
- 4219455,
- 4220699,
- 6317851,
- 4215186,
- 4220009,
- 4227067,
- 4215265,
- 4225256,
- 4234068,
- 4234939,
- 4221401,
- 6318173,
- 2110568,
- 2138036,
- 4226669,
- 4234943,
- 6324488,
- 4220430,
- 4224735,
- 4231159,
- 4217220,
- 2118352,
- 4224754,
- 4227095,
- 4219451,
- 4226315,
- 2135528,
- 4226308,
- 4230797,
- 2275209,
- 6318202,
- 2123777,
- 4219145,
- 2132717,
- 4230968,
- 4215495,
- 4220681,
- 4223798,
- 6320950,
- 6320951,
- 2250367,
- 4231242,
- 4220636,
- 2129802,
- 4229505,
- 4233482,
- 4227020,
- 6324220,
- 2133686,
- 4228653,
- 4223879,
- 4235149,
- 6332301,
- 4220357,
- 2138052,
- 4223440,
- 6330019,
- 4234327,
- 6332063,
- 2129019,
- 2121417,
- 4219280,
- 2134051,
- 8414999,
- 2129922,
- 2254512,
- 6312138,
- 4215066,
- 6312276,
- 6312341,
- 2229800,
- 4215437,
- 4215511,
- 2228362,
- 2230660,
- 2110782,
- 4215775,
- 4220668,
- 6313267,
- 6313444,
- 2118741,
- 4216512,
- 2119993,
- 4217372,
- 4217538,
- 2120566,
- 4217795,
- 2120724,
- 2111458,
- 2120934,
- 4218452,
- 2117192,
- 4218595,
- 6316183,
- 2122452,
- 4219596,
- 4219932,
- 4219846,
- 4219944,
- 2255257,
- 2122523,
- 6317663,
- 8414815,
- 2123363,
- 4220661,
- 2241484,
- 4221085,
- 4221069,
- 2124278,
- 2124166,
- 2271718,
- 4217832,
- 4221371,
- 2124748,
- 6319889,
- 2125335,
- 4222872,
- 4222122,
- 2124970,
- 4223003,
- 4223330,
- 4223547,
- 2117164,
- 4223772,
- 4224202,
- 2127087,
- 2127221,
- 2127340,
- 2127438,
- 2113457,
- 2127722,
- 2127785,
- 4225344,
- 2138054,
- 6322515,
- 4235083,
- 4225454,
- 4231299,
- 2128723,
- 2275261,
- 4226068,
- 2114148,
- 4226128,
- 4226136,
- 4226374,
- 4226403,
- 4226594,
- 6323746,
- 2129480,
- 6323765,
- 4226627,
- 4226700,
- 2286200,
- 2229567,
- 2253418,
- 4350576,
- 4227013,
- 4227014,
- 6324201,
- 2130241,
- 2114643,
- 4227672,
- 2130553,
- 6324857,
- 4227705,
- 4227811,
- 2118009,
- 2130778,
- 4228128,
- 4228029,
- 4228340,
- 2114853,
- 4228487,
- 2131444,
- 2228400,
- 4228919,
- 4228923,
- 4229125,
- 4229053,
- 2131581,
- 6326326,
- 2110510,
- 2132166,
- 4229565,
- 4229851,
- 4229950,
- 4229978,
- 4230515,
- 4230553,
- 2115558,
- 4230708,
- 2287338,
- 4231151,
- 4231303,
- 4231162,
- 4231198,
- 4231221,
- 4231248,
- 2133960,
- 4231297,
- 4231306,
- 6328458,
- 8425610,
- 10522762,
- 12619914,
- 14717066,
- 6328457,
- 8425609,
- 10522761,
- 12619913,
- 14717065,
- 16814217,
- 18911369,
- 21008521,
- 23105673,
- 25202825,
- 27299977,
- 29397129,
- 2263431,
- 4232157,
- 4232636,
- 2264599,
- 4232882,
- 4233049,
- 2136121,
- 4233451,
- 4233475,
- 4233481,
- 4233541,
- 6330693,
- 4233547,
- 2136584,
- 4233823,
- 4233829,
- 4233967,
- 4234008,
- 2137055,
- 4234505,
- 4234504,
- 4234917,
- 4234956,
- 6332168,
- 4235082,
- 2275354,
- 4235111,
- 4367898,
- 4342510,
- 2245358,
- 4229404,
- 4221128,
- 4220667,
- 4218693,
- 4215552,
- 2118537,
- 4217171,
- 2161169,
- 2123858,
- 4221555,
- 2243774,
- 2229777,
- 4229650,
- 2117124,
- 2117125,
- 2117151,
- 2117163,
- 2117167,
- 2117168,
- 2117184,
- 2117185,
- 2117188,
- 2117210,
- 2117247,
- 2117261,
- 2117270,
- 2117305,
- 2117328,
- 2117344,
- 2117373,
- 2117375,
- 2117387,
- 2117397,
- 2117472,
- 2117435,
- 2117449,
- 2117460,
- 2117498,
- 2117501,
- 2117502,
- 2117527,
- 2117566,
- 2117583,
- 2117629,
- 2117632,
- 2117633,
- 2117648,
- 2117659,
- 2117671,
- 2117678,
- 2117719,
- 2117734,
- 2117738,
- 2117691,
- 2117775,
- 2117782,
- 2117788,
- 2117836,
- 2117862,
- 2117865,
- 2117871,
- 2117896,
- 2117899,
- 2117904,
- 2117915,
- 2117918,
- 2117983,
- 2118049,
- 2118076,
- 6312414,
- 2118126,
- 2118132,
- 2118145,
- 2118146,
- 2118163,
- 2118217,
- 2118241,
- 2118246,
- 2118291,
- 2118344,
- 2118384,
- 2118410,
- 2118411,
- 2118462,
- 2118476,
- 2118475,
- 2118497,
- 2118508,
- 2118571,
- 2118618,
- 2118630,
- 2118645,
- 2118695,
- 2118733,
- 2118758,
- 2118763,
- 2118772,
- 2118797,
- 2118806,
- 2118817,
- 2118829,
- 2118841,
- 2118847,
- 2118854,
- 2118861,
- 2118926,
- 2118955,
- 2118965,
- 2118986,
- 2119008,
- 4216161,
- 2119048,
- 2119054,
- 2119176,
- 2119182,
- 2119183,
- 2119223,
- 2119231,
- 2119241,
- 2119243,
- 2119247,
- 2119270,
- 2119273,
- 2119279,
- 2119281,
- 2119282,
- 2119317,
- 2119322,
- 2119340,
- 2119341,
- 2119345,
- 2119369,
- 2119389,
- 2119396,
- 2119434,
- 2119445,
- 2119459,
- 2119471,
- 2119475,
- 2119476,
- 2119500,
- 2119536,
- 2119564,
- 2119580,
- 2119608,
- 2119654,
- 2119661,
- 2119669,
- 2119670,
- 2119679,
- 2119689,
- 2119712,
- 2119730,
- 2119804,
- 2119808,
- 2119849,
- 2119886,
- 2119888,
- 2119892,
- 2119898,
- 2119913,
- 2119948,
- 2119972,
- 2119983,
- 2120033,
- 2120045,
- 2120138,
- 2120146,
- 2120157,
- 2120163,
- 2120164,
- 2120196,
- 2120204,
- 2120227,
- 2120263,
- 2120277,
- 2120291,
- 2120301,
- 2120318,
- 2120350,
- 2120359,
- 2120364,
- 2120371,
- 2120416,
- 2120448,
- 2120473,
- 2120485,
- 2120493,
- 2120513,
- 2120572,
- 2120574,
- 2120575,
- 2120586,
- 2120739,
- 2120747,
- 2120752,
- 2120803,
- 2120809,
- 2120828,
- 2120907,
- 2120914,
- 2120948,
- 2120996,
- 2120998,
- 2121027,
- 2121030,
- 2121034,
- 2121106,
- 2121108,
- 2121113,
- 2121120,
- 2121176,
- 2121184,
- 2121208,
- 2121216,
- 2121234,
- 2121236,
- 2121237,
- 2121240,
- 2121262,
- 2121304,
- 2121323,
- 2121324,
- 2121384,
- 2121386,
- 2121406,
- 2121407,
- 4218571,
- 2121426,
- 2121479,
- 2121486,
- 2121500,
- 2121501,
- 2121506,
- 2121512,
- 2121526,
- 2121531,
- 2121536,
- 2121552,
- 2121560,
- 2121572,
- 2121609,
- 2121628,
- 2121639,
- 2121636,
- 2121647,
- 2121656,
- 2121668,
- 2121673,
- 2121697,
- 2121705,
- 2121709,
- 2121724,
- 2121751,
- 2121754,
- 2121779,
- 2121825,
- 2121855,
- 2121886,
- 2121892,
- 2121904,
- 2121931,
- 2121947,
- 2121976,
- 2122002,
- 2122003,
- 2122004,
- 2122012,
- 2122108,
- 2122125,
- 2122143,
- 2122152,
- 2122178,
- 2122207,
- 2122261,
- 2122281,
- 2122307,
- 2122310,
- 2122316,
- 2122321,
- 2122326,
- 2122436,
- 2122492,
- 2122506,
- 2122509,
- 2122520,
- 2122553,
- 2122562,
- 2122563,
- 2122597,
- 2122612,
- 2122621,
- 2122628,
- 2122631,
- 2122640,
- 2122654,
- 2122705,
- 2122716,
- 2122761,
- 2122768,
- 2122786,
- 2122836,
- 2122843,
- 2122861,
- 2122875,
- 2122942,
- 2122943,
- 2122981,
- 2122999,
- 2123003,
- 2123012,
- 2123030,
- 2123033,
- 2123079,
- 2123111,
- 2123137,
- 2123141,
- 2123202,
- 2123248,
- 2123250,
- 2123308,
- 2123340,
- 2123355,
- 2123356,
- 2123361,
- 2123371,
- 4220535,
- 2123428,
- 2123464,
- 2123500,
- 2123525,
- 2123539,
- 2123571,
- 2123592,
- 2123596,
- 2123638,
- 2123643,
- 2123696,
- 2123698,
- 2123769,
- 2123735,
- 2123737,
- 2123760,
- 2123820,
- 2123824,
- 2123825,
- 2123867,
- 2123890,
- 2123893,
- 2123898,
- 2123908,
- 2123941,
- 2123954,
- 2123984,
- 2123990,
- 2124008,
- 2124013,
- 2124016,
- 2124017,
- 2124028,
- 2124049,
- 2124051,
- 2124085,
- 2124091,
- 2124119,
- 2124131,
- 2124146,
- 2124159,
- 2124160,
- 2124198,
- 2124205,
- 2124215,
- 2124246,
- 2124247,
- 2124289,
- 2124303,
- 2124309,
- 2124328,
- 2124340,
- 2124350,
- 2124357,
- 2124368,
- 2124369,
- 2124374,
- 2124379,
- 2124419,
- 2124425,
- 2124433,
- 2124445,
- 2124446,
- 2124447,
- 2124508,
- 2124519,
- 2124524,
- 2124574,
- 2124580,
- 2124597,
- 2124614,
- 2124630,
- 2124640,
- 2124674,
- 2124734,
- 2124769,
- 2124785,
- 2124816,
- 2124851,
- 2124853,
- 4222010,
- 2124889,
- 2124918,
- 2124923,
- 2124933,
- 2124949,
- 2124956,
- 2125008,
- 2125012,
- 2125014,
- 2125024,
- 2125035,
- 2125036,
- 2125038,
- 2125066,
- 2125070,
- 2125073,
- 2125102,
- 2125143,
- 2125150,
- 2125157,
- 2125186,
- 2125247,
- 2125252,
- 2125258,
- 2125270,
- 2125289,
- 2125346,
- 2125393,
- 2125511,
- 2125514,
- 2125518,
- 2125565,
- 2125594,
- 2125610,
- 2125615,
- 2125619,
- 2125658,
- 2125662,
- 2125666,
- 2125693,
- 2125707,
- 2125709,
- 2125714,
- 2125716,
- 2125722,
- 2125735,
- 2125736,
- 2125750,
- 2125786,
- 2125790,
- 4222969,
- 2125881,
- 2125884,
- 4223050,
- 2125908,
- 2125917,
- 2125918,
- 2125924,
- 2125932,
- 2125950,
- 2125953,
- 2125973,
- 2126007,
- 2126035,
- 2126036,
- 2126040,
- 2126044,
- 2126087,
- 2126112,
- 2126129,
- 2126154,
- 2126162,
- 2126176,
- 2126201,
- 2126226,
- 4223411,
- 2126283,
- 2126291,
- 2126294,
- 2126336,
- 2126365,
- 2126379,
- 2126392,
- 2126401,
- 2126419,
- 2126421,
- 2126422,
- 2126428,
- 2126477,
- 2126509,
- 2126516,
- 2126535,
- 2126587,
- 2126596,
- 2126597,
- 2126632,
- 2126641,
- 2126659,
- 2126700,
- 2126716,
- 2126723,
- 2126725,
- 2126726,
- 2126741,
- 2126750,
- 2126751,
- 2126752,
- 2126758,
- 2126763,
- 2126773,
- 2126775,
- 2126780,
- 2126799,
- 2126809,
- 2126825,
- 2126836,
- 2126845,
- 2126852,
- 2126858,
- 2126874,
- 2126875,
- 2126884,
- 2126888,
- 2126892,
- 2126895,
- 2126896,
- 2126897,
- 2126905,
- 2126916,
- 2126919,
- 2126923,
- 2126925,
- 2126929,
- 2126935,
- 2126950,
- 2126955,
- 2126961,
- 2126976,
- 2126981,
- 2126982,
- 2126983,
- 2126992,
- 2127000,
- 2127004,
- 2127008,
- 2127011,
- 2127016,
- 2127019,
- 2127029,
- 2127039,
- 2127048,
- 2127066,
- 2127070,
- 2127182,
- 2127225,
- 2127233,
- 2127248,
- 2127250,
- 2127251,
- 2127284,
- 2127332,
- 2127353,
- 2127360,
- 2127370,
- 2127381,
- 2127382,
- 2127385,
- 2127390,
- 2127405,
- 2127413,
- 2127427,
- 2127435,
- 2127461,
- 2127469,
- 2127471,
- 2127473,
- 2127476,
- 2127524,
- 2127525,
- 2127557,
- 2127564,
- 2127596,
- 2127612,
- 2127668,
- 2127670,
- 2127708,
- 2127711,
- 2127712,
- 2127730,
- 2127741,
- 2127765,
- 2127786,
- 2127846,
- 2127856,
- 2127860,
- 2127878,
- 2127906,
- 2127917,
- 2127918,
- 2127920,
- 2127925,
- 2127976,
- 2128030,
- 2128072,
- 2128076,
- 2128078,
- 2128100,
- 2128096,
- 2128097,
- 2128114,
- 2128119,
- 2128123,
- 2128177,
- 4225332,
- 2128187,
- 2128189,
- 2128197,
- 2128219,
- 2128220,
- 2128267,
- 2128278,
- 2128280,
- 2128312,
- 2128315,
- 2128330,
- 2128346,
- 2128387,
- 2128393,
- 2128401,
- 2128414,
- 2128429,
- 2128441,
- 2128453,
- 2128460,
- 2128477,
- 4225632,
- 2128493,
- 2128504,
- 2128544,
- 2128547,
- 2128563,
- 2128571,
- 2128572,
- 2128582,
- 2128647,
- 2128660,
- 2128679,
- 2128689,
- 2128711,
- 2128718,
- 2128736,
- 2128745,
- 2128749,
- 2128754,
- 2128785,
- 2128815,
- 2128855,
- 2128857,
- 2128907,
- 2128911,
- 2128928,
- 2128934,
- 2128945,
- 2128950,
- 2128977,
- 2128985,
- 2128999,
- 2129006,
- 2129008,
- 2129084,
- 2129087,
- 2129096,
- 2129097,
- 2129111,
- 2129113,
- 2129117,
- 2129131,
- 2129159,
- 2129160,
- 2129161,
- 2129171,
- 2129181,
- 2129187,
- 2129217,
- 2129235,
- 2129241,
- 2129245,
- 2129274,
- 2129286,
- 2129291,
- 2129292,
- 2129356,
- 2129387,
- 2129393,
- 2129401,
- 2129416,
- 2129425,
- 2129429,
- 2129440,
- 2129479,
- 2129506,
- 2129518,
- 2129523,
- 2129549,
- 2129553,
- 2129560,
- 2129732,
- 2129743,
- 2129746,
- 2129747,
- 2129761,
- 2129809,
- 2129855,
- 2129870,
- 2129887,
- 2129893,
- 2129900,
- 2129902,
- 2129903,
- 2129914,
- 2129934,
- 2129937,
- 2129940,
- 2129956,
- 2129958,
- 2129978,
- 2129980,
- 2130016,
- 2130033,
- 2130037,
- 2130078,
- 2130086,
- 2130091,
- 2130135,
- 2130136,
- 2130198,
- 2130200,
- 2130234,
- 2130250,
- 2130252,
- 2130305,
- 2130308,
- 2130356,
- 2130383,
- 2130425,
- 2130435,
- 2130465,
- 2130482,
- 2130484,
- 2130502,
- 2130507,
- 2130511,
- 2130574,
- 2130606,
- 2130615,
- 2130622,
- 2130630,
- 2130686,
- 2130755,
- 2130769,
- 2130773,
- 2130822,
- 2130829,
- 2130834,
- 2130840,
- 2130857,
- 2130879,
- 2130880,
- 2130922,
- 2130959,
- 2130961,
- 2131018,
- 2131062,
- 2131112,
- 2131119,
- 2131136,
- 2131138,
- 2131184,
- 2131197,
- 2131212,
- 2131252,
- 2131294,
- 2131343,
- 2131383,
- 2131406,
- 2131373,
- 2131474,
- 2131497,
- 2131538,
- 2131555,
- 2131564,
- 2131567,
- 2131578,
- 2131597,
- 2131601,
- 2131608,
- 2131623,
- 2131624,
- 2131706,
- 2131709,
- 2131723,
- 2131731,
- 2131737,
- 2131742,
- 2131752,
- 2131774,
- 2131825,
- 2131848,
- 2131865,
- 2131884,
- 2131885,
- 2131893,
- 2131926,
- 2131947,
- 2131949,
- 2131969,
- 4229123,
- 2131974,
- 2131979,
- 2131988,
- 2131996,
- 2132054,
- 2132063,
- 2132068,
- 2132120,
- 2132138,
- 2132157,
- 2132158,
- 2132170,
- 2132178,
- 2132187,
- 2132208,
- 2132209,
- 2132230,
- 2132248,
- 2132249,
- 2132250,
- 2132263,
- 2132272,
- 2132286,
- 2132347,
- 2132436,
- 2132438,
- 2132453,
- 2132465,
- 2132487,
- 2132495,
- 2132501,
- 2132514,
- 2132558,
- 2132607,
- 2132724,
- 2132767,
- 2132791,
- 2132803,
- 2132804,
- 2132820,
- 2132892,
- 2132894,
- 2133063,
- 2133076,
- 2133107,
- 2133156,
- 2133209,
- 2133217,
- 2133240,
- 2133246,
- 2133275,
- 2133353,
- 2133356,
- 2133380,
- 2133389,
- 2133397,
- 2133414,
- 2133446,
- 2133454,
- 2133476,
- 2133484,
- 2133536,
- 2133579,
- 2133612,
- 2133616,
- 2133626,
- 2133650,
- 2133678,
- 2133683,
- 2133713,
- 4230868,
- 2133753,
- 2133783,
- 2133814,
- 2133926,
- 2133941,
- 2133942,
- 4231110,
- 2133984,
- 2133988,
- 2134006,
- 2134018,
- 2134060,
- 2134084,
- 2134152,
- 2134165,
- 2134169,
- 2134171,
- 2134178,
- 2134196,
- 2134231,
- 2134237,
- 2134260,
- 2134295,
- 2134300,
- 2134321,
- 2134330,
- 2134333,
- 2134344,
- 2134363,
- 2134369,
- 2134372,
- 2134414,
- 2134430,
- 2134440,
- 2134445,
- 2134446,
- 2134450,
- 2134460,
- 2134512,
- 2134519,
- 2134523,
- 2134535,
- 2134568,
- 2134579,
- 2134584,
- 2134595,
- 2134599,
- 2134607,
- 2134624,
- 2134722,
- 2134731,
- 2134732,
- 2134751,
- 2134797,
- 2134805,
- 2134815,
- 2134823,
- 2134855,
- 2134866,
- 4232037,
- 2134890,
- 2134893,
- 2134939,
- 2134970,
- 2134953,
- 2134977,
- 2134986,
- 2135010,
- 2135034,
- 2135037,
- 2135055,
- 2135092,
- 2135103,
- 2135125,
- 2135147,
- 2135154,
- 2135416,
- 2135462,
- 2135465,
- 4232619,
- 2135476,
- 2135485,
- 2135514,
- 2135581,
- 2135617,
- 2135640,
- 2135684,
- 2135716,
- 2135721,
- 2135762,
- 2121138,
- 2135774,
- 2135785,
- 2135793,
- 2135810,
- 2135817,
- 2135898,
- 2135907,
- 2135918,
- 2135923,
- 2135962,
- 2135970,
- 2135989,
- 2135990,
- 2136025,
- 2136030,
- 2136052,
- 2136074,
- 2136078,
- 2136094,
- 2136099,
- 2136107,
- 2136126,
- 2136146,
- 2136147,
- 2136153,
- 2136172,
- 2136248,
- 2136250,
- 2136255,
- 2136264,
- 2136293,
- 2136370,
- 2136371,
- 2136384,
- 2136397,
- 2136412,
- 2136415,
- 2136497,
- 2136505,
- 2136506,
- 2136521,
- 2136578,
- 2136598,
- 2136612,
- 2136615,
- 2136621,
- 2136622,
- 2136630,
- 2136632,
- 2136650,
- 2136662,
- 2136757,
- 2136758,
- 2136825,
- 2136835,
- 2136864,
- 2136883,
- 2136884,
- 2136947,
- 2136953,
- 2136999,
- 2137025,
- 2137031,
- 2137047,
- 2137063,
- 2137067,
- 2137079,
- 2137082,
- 2137085,
- 2137099,
- 2137127,
- 2137130,
- 2137142,
- 2137153,
- 2137171,
- 2137187,
- 2137200,
- 2137207,
- 2137346,
- 2137410,
- 2137415,
- 2137443,
- 2137449,
- 2137468,
- 2137470,
- 2137485,
- 2137521,
- 2137539,
- 2137543,
- 2137558,
- 2137567,
- 2137579,
- 2137588,
- 2137621,
- 2137629,
- 2137764,
- 2137768,
- 2137772,
- 2137831,
- 2137838,
- 2137872,
- 2137874,
- 2137879,
- 2137881,
- 2137903,
- 2137911,
- 2137913,
- 2137921,
- 2137925,
- 2137943,
- 2137960,
- 2137969,
- 2137973,
- 2138000,
- 2138004,
- 2138018,
- 4214320,
- 2110469,
- 4214624,
- 2119200,
- 2121419,
- 4218704,
- 4219044,
- 2242106,
- 4221732,
- 2125817,
- 2125542,
- 2126259,
- 4223531,
- 4225734,
- 4226913,
- 4227185,
- 4227230,
- 4231094,
- 4231676,
- 4218290,
- 4233182,
- 2117587,
- 2117849,
- 2117872,
- 2118083,
- 2119286,
- 2124372,
- 2125057,
- 2125264,
- 2125378,
- 2125529,
- 2126820,
- 2126881,
- 2127212,
- 2127953,
- 2131957,
- 2241534,
- 2126760,
- 2112243,
- 2110683,
- 2114572,
- 2113162,
- 4339140,
- 2138045,
- 2116584,
- 2138044,
- 2113242,
- 2112290,
- 2138046,
- 2114938,
- 2113683,
- 4365885,
- 2115173,
- 2113795,
- 2114195,
- 2115246,
- 2110600,
- 2237961,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- 2117448,
- 2117471,
- 2117482,
- 2117484,
- 2117646,
- 2117656,
- 2117697,
- 2117874,
- 2117840,
- 2117894,
- 2117891,
- 2117941,
- 2117973,
- 2117975,
- 2110645,
- 2118090,
- 2118114,
- 2118231,
- 2118348,
- 2118358,
- 2118395,
- 2118428,
- 2118499,
- 2118557,
- 2118674,
- 2118783,
- 2118792,
- 2118992,
- 2119041,
- 2119085,
- 2119118,
- 2119227,
- 2119326,
- 2119337,
- 2119347,
- 2119543,
- 2119548,
- 2233115,
- 2119631,
- 2119652,
- 2119780,
- 2119817,
- 2233454,
- 2119890,
- 2119904,
- 2131521,
- 2120075,
- 2120082,
- 2120131,
- 2120211,
- 2120295,
- 2120311,
- 2120324,
- 2120388,
- 2234557,
- 2120573,
- 2120595,
- 2120722,
- 2120814,
- 2234036,
- 2120826,
- 2120847,
- 2120863,
- 2120867,
- 2120874,
- 2120912,
- 2235956,
- 2120973,
- 2121031,
- 2121089,
- 2121124,
- 2121127,
- 2121163,
- 2121310,
- 2121465,
- 2121472,
- 2121474,
- 2121507,
- 2121533,
- 2121556,
- 2121597,
- 2121741,
- 2121748,
- 2121752,
- 2121781,
- 2121799,
- 2121885,
- 2121940,
- 2121949,
- 2122027,
- 2122172,
- 2122169,
- 2122274,
- 2122330,
- 2122351,
- 2122454,
- 2122620,
- 2122725,
- 2122873,
- 2122948,
- 2122960,
- 2123049,
- 2123165,
- 2123322,
- 2123298,
- 2123307,
- 2123312,
- 2123315,
- 2123336,
- 2240964,
- 2123383,
- 2123384,
- 2123405,
- 2123451,
- 2123483,
- 2123496,
- 2123591,
- 2123649,
- 2123667,
- 2123672,
- 2123675,
- 2123772,
- 2123805,
- 2123939,
- 2124042,
- 2124105,
- 2241988,
- 2124098,
- 2124132,
- 2124197,
- 2124239,
- 2112438,
- 2112451,
- 2124265,
- 2124277,
- 2242367,
- 2124347,
- 2242403,
- 2124436,
- 2124453,
- 2112527,
- 2124571,
- 2124588,
- 2124647,
- 2124713,
- 2124717,
- 2124759,
- 2124799,
- 2124805,
- 2124916,
- 2124952,
- 2125051,
- 2124998,
- 2125105,
- 2125113,
- 2125119,
- 2125144,
- 2125204,
- 2125226,
- 2125275,
- 2125277,
- 2125380,
- 2125406,
- 2125489,
- 2125505,
- 2125584,
- 2125657,
- 2125665,
- 2125694,
- 2125708,
- 2125728,
- 2125756,
- 2125767,
- 2125770,
- 2125808,
- 2125902,
- 2125941,
- 2125988,
- 2126052,
- 2126123,
- 2126110,
- 2126126,
- 2126161,
- 2126184,
- 2126213,
- 2126215,
- 2126266,
- 2126276,
- 2126357,
- 2113087,
- 2126491,
- 2246641,
- 2126631,
- 2126672,
- 2126694,
- 2126754,
- 2126891,
- 2126918,
- 2126946,
- 2126957,
- 2127014,
- 2127017,
- 2127049,
- 2127103,
- 2127127,
- 2113394,
- 2127310,
- 2127362,
- 2127368,
- 2127460,
- 2127489,
- 2127517,
- 2127530,
- 2127542,
- 2127566,
- 2127572,
- 2127590,
- 2127601,
- 2127626,
- 2127641,
- 2127693,
- 2127694,
- 2127738,
- 2127744,
- 2127764,
- 2127840,
- 2249870,
- 2127939,
- 2127982,
- 2128048,
- 2249998,
- 2128045,
- 2128128,
- 2128156,
- 2128174,
- 2128180,
- 2128198,
- 2128249,
- 2128328,
- 2250609,
- 2128340,
- 2128350,
- 2128363,
- 2128365,
- 2128517,
- 2251204,
- 2128590,
- 2128637,
- 2128658,
- 2128685,
- 2128699,
- 2128751,
- 2128897,
- 2128947,
- 2252193,
- 2129005,
- 2129017,
- 2129039,
- 2129044,
- 2129056,
- 2129109,
- 2129201,
- 2129244,
- 2129283,
- 2129318,
- 2129346,
- 2129448,
- 2129815,
- 2129883,
- 2129973,
- 2129975,
- 2130122,
- 2130144,
- 2130163,
- 2130272,
- 2130279,
- 2130280,
- 2130285,
- 2130363,
- 2130378,
- 2130391,
- 2114651,
- 2130528,
- 2130548,
- 2255615,
- 2130593,
- 2130595,
- 2130596,
- 2130601,
- 2130623,
- 2130645,
- 2130685,
- 2130688,
- 2130722,
- 2130733,
- 2130746,
- 2130759,
- 2130813,
- 2130855,
- 2130895,
- 2130897,
- 2130913,
- 2130945,
- 2130950,
- 2131039,
- 2131056,
- 2131059,
- 2131077,
- 2131102,
- 2131130,
- 2256448,
- 2131250,
- 2131230,
- 2131247,
- 2131300,
- 2131322,
- 2131340,
- 2131362,
- 2131403,
- 2131437,
- 2131455,
- 2131460,
- 2131461,
- 2131472,
- 2257140,
- 2131480,
- 2131512,
- 2131543,
- 2131554,
- 2114973,
- 2131573,
- 2131640,
- 2131708,
- 2131847,
- 2115050,
- 2131978,
- 2131984,
- 2132174,
- 2258564,
- 2132274,
- 2132281,
- 2132288,
- 2132372,
- 2132470,
- 2132551,
- 2132573,
- 2132577,
- 2132597,
- 2132688,
- 2132806,
- 2132825,
- 2132841,
- 2132893,
- 2133065,
- 2133096,
- 2133423,
- 2133457,
- 2133463,
- 2133539,
- 2133565,
- 2133627,
- 2261623,
- 2115652,
- 2133754,
- 2133790,
- 2133805,
- 2133844,
- 2261965,
- 2133992,
- 2133998,
- 2134024,
- 2134061,
- 2134167,
- 2134195,
- 2134206,
- 2134212,
- 2134213,
- 2134215,
- 2134255,
- 2134292,
- 2134294,
- 2134306,
- 2134307,
- 2134319,
- 2134324,
- 2134403,
- 2134513,
- 2134857,
- 2134884,
- 2134885,
- 2134947,
- 2135007,
- 2135044,
- 2135091,
- 2135114,
- 2135139,
- 2135153,
- 2135438,
- 2135455,
- 2135468,
- 2135478,
- 2135499,
- 2135504,
- 2135507,
- 2116016,
- 2135518,
- 2135717,
- 2135791,
- 2135886,
- 2135957,
- 2135982,
- 2135994,
- 2136001,
- 2136009,
- 2136027,
- 2136150,
- 2136295,
- 2136408,
- 2136579,
- 2136769,
- 2136771,
- 2136782,
- 2136790,
- 2136834,
- 2136840,
- 2116631,
- 2136877,
- 2136926,
- 2136934,
- 2136964,
- 2136970,
- 2136990,
- 2137038,
- 2137061,
- 2137080,
- 2137123,
- 2137167,
- 2137168,
- 2137189,
- 2137373,
- 2137374,
- 2137411,
- 2137426,
- 2137482,
- 2137494,
- 2137536,
- 2137516,
- 2137532,
- 2269584,
- 2137575,
- 2137607,
- 2137758,
- 2137775,
- 2138007,
- 2228361,
- 2117122,
- 2117135,
- 2117138,
- 2117161,
- 2117166,
- 2117191,
- 2228386,
- 2117201,
- 2110470,
- 2228388,
- 2117225,
- 2117277,
- 2110508,
- 2117308,
- 2117315,
- 2117320,
- 2117355,
- 2117338,
- 2117361,
- 2117365,
- 2117398,
- 2117476,
- 2117431,
- 2117438,
- 2117464,
- 2228755,
- 2117495,
- 2117496,
- 2117506,
- 2117509,
- 2117606,
- 2117554,
- 2117573,
- 2117579,
- 2117586,
- 2110570,
- 2117618,
- 2117651,
- 2117660,
- 2117710,
- 2117715,
- 2117731,
- 2117795,
- 2117768,
- 2117778,
- 2117779,
- 2117781,
- 2117802,
- 2229035,
- 2117809,
- 2117818,
- 2117819,
- 2117828,
- 2117831,
- 2117875,
- 2229121,
- 2117838,
- 2229105,
- 2117844,
- 2117857,
- 2110610,
- 2229241,
- 2117911,
- 2229322,
- 2117984,
- 2229513,
- 2118003,
- 2118019,
- 2118027,
- 2110652,
- 2118040,
- 2118051,
- 2118061,
- 2110663,
- 2229718,
- 2118131,
- 2118162,
- 2118166,
- 2230095,
- 2118229,
- 2118236,
- 2118252,
- 2118263,
- 2118276,
- 2118274,
- 2230279,
- 2118296,
- 2230330,
- 2118308,
- 2118330,
- 2118331,
- 2118346,
- 2118353,
- 2230457,
- 2118391,
- 2118453,
- 2118466,
- 2230652,
- 2230685,
- 2118503,
- 2118522,
- 2118564,
- 2118580,
- 2230995,
- 2118583,
- 2118592,
- 2231069,
- 2110813,
- 2110814,
- 2118613,
- 2110819,
- 2118644,
- 2118692,
- 2118696,
- 2110830,
- 2118723,
- 2118754,
- 2118764,
- 2118805,
- 2118816,
- 2118822,
- 2118830,
- 2118839,
- 2118842,
- 2118851,
- 2231621,
- 2118892,
- 2118895,
- 2118897,
- 2118899,
- 2118912,
- 2118913,
- 2118921,
- 2118972,
- 2118977,
- 2110886,
- 2118983,
- 2110888,
- 2119012,
- 2231777,
- 2119037,
- 2119042,
- 2119057,
- 2110917,
- 2119122,
- 2231957,
- 2231917,
- 2119103,
- 2119113,
- 2119116,
- 2119121,
- 2119133,
- 2110938,
- 2119138,
- 2231908,
- 2119145,
- 2119208,
- 2232159,
- 2119175,
- 2119184,
- 2119216,
- 2110964,
- 2119229,
- 2119232,
- 2119239,
- 2119262,
- 2119264,
- 2119277,
- 2110981,
- 2119304,
- 2119308,
- 2119325,
- 2119336,
- 2119346,
- 2119365,
- 2119373,
- 2119391,
- 2119400,
- 2119414,
- 2119415,
- 2232833,
- 2232917,
- 2119465,
- 2232955,
- 2119493,
- 2119494,
- 2119501,
- 2232948,
- 2119528,
- 2119535,
- 2119539,
- 2119540,
- 2119541,
- 2119547,
- 2233060,
- 2233047,
- 2119578,
- 2119581,
- 2119582,
- 2119592,
- 2119639,
- 2233085,
- 2119628,
- 2233142,
- 2233156,
- 2119646,
- 2119664,
- 2111050,
- 2119672,
- 2119675,
- 2119677,
- 2119684,
- 2119710,
- 2119719,
- 2119737,
- 2233284,
- 2119753,
- 2119756,
- 2119783,
- 2119818,
- 2119819,
- 2119821,
- 2119823,
- 2119824,
- 2119828,
- 2119837,
- 2119850,
- 2119857,
- 2233453,
- 2119875,
- 2119885,
- 2119906,
- 2119923,
- 2119924,
- 2119941,
- 2119942,
- 2119949,
- 2119956,
- 2233815,
- 2111121,
- 2119997,
- 2111129,
- 2120006,
- 2111126,
- 2255913,
- 2120031,
- 2233927,
- 2120053,
- 2120054,
- 2120060,
- 2120095,
- 2120110,
- 2120124,
- 2120136,
- 2120141,
- 2120158,
- 2120167,
- 2120174,
- 2234118,
- 2234178,
- 2111183,
- 2120205,
- 2120215,
- 2120231,
- 2120237,
- 2120293,
- 2120314,
- 2120331,
- 2120348,
- 2120351,
- 2120352,
- 2120354,
- 2120369,
- 2120373,
- 2120378,
- 2120383,
- 2120410,
- 2120412,
- 2120421,
- 2120432,
- 2120430,
- 2120437,
- 2120456,
- 2120471,
- 2120500,
- 2120524,
- 2120530,
- 2120552,
- 2120559,
- 2120577,
- 2120580,
- 2234819,
- 2120598,
- 2120620,
- 2111329,
- 2111330,
- 2120654,
- 2120662,
- 2111340,
- 2111339,
- 2120689,
- 2120701,
- 2111349,
- 2120707,
- 2120745,
- 2235478,
- 2120799,
- 2120807,
- 2120808,
- 2120816,
- 2235693,
- 2235717,
- 2235768,
- 2235746,
- 2120840,
- 2120842,
- 2111425,
- 2235809,
- 2235804,
- 2120864,
- 2120866,
- 2120871,
- 2235794,
- 2120877,
- 2120885,
- 2235831,
- 2120905,
- 2235872,
- 2235955,
- 2120966,
- 2120976,
- 2121003,
- 2120989,
- 2120992,
- 2121009,
- 2121017,
- 2111464,
- 2121057,
- 2121066,
- 2111476,
- 2121072,
- 2236190,
- 2111485,
- 2121096,
- 2111488,
- 2121111,
- 2121136,
- 2121140,
- 2236278,
- 2121169,
- 2121175,
- 2236410,
- 2121188,
- 2121193,
- 2111535,
- 2111542,
- 2111552,
- 2121247,
- 2121278,
- 2121289,
- 2111580,
- 2121302,
- 2111585,
- 2121325,
- 2121326,
- 2236795,
- 2121381,
- 2121388,
- 2121401,
- 2121414,
- 2121433,
- 2237214,
- 2121469,
- 2121480,
- 2237357,
- 2121502,
- 2121543,
- 2121571,
- 2121586,
- 2121598,
- 2121615,
- 2121634,
- 2121671,
- 2121675,
- 2121682,
- 2121683,
- 2121684,
- 2121698,
- 2121710,
- 2121711,
- 2121715,
- 2111767,
- 2121762,
- 2121764,
- 2111770,
- 2121804,
- 2121877,
- 2121896,
- 2238195,
- 2121905,
- 2121918,
- 2121928,
- 2121945,
- 2121966,
- 2121973,
- 2122000,
- 2122009,
- 2122014,
- 2122042,
- 2111855,
- 2122049,
- 2122054,
- 2122080,
- 2238555,
- 2122130,
- 2122131,
- 2122135,
- 2122149,
- 2122157,
- 2238635,
- 2122197,
- 2122205,
- 2122229,
- 2238863,
- 2122275,
- 2122322,
- 2122337,
- 2122340,
- 2122363,
- 2122349,
- 2122355,
- 2122393,
- 2122453,
- 2239160,
- 2122493,
- 2122499,
- 2122512,
- 2239311,
- 2239312,
- 2122546,
- 2122549,
- 2122555,
- 2122556,
- 2122561,
- 2122564,
- 2122574,
- 2239302,
- 2122585,
- 2239517,
- 2239398,
- 2122604,
- 2122649,
- 2239524,
- 2122644,
- 2122685,
- 2122708,
- 2122709,
- 2122720,
- 2122731,
- 2122732,
- 2122738,
- 2122782,
- 2122789,
- 2122793,
- 2122799,
- 2122842,
- 2122845,
- 2122867,
- 2122877,
- 2122887,
- 2122897,
- 2122911,
- 2122955,
- 2122956,
- 2122965,
- 2122967,
- 2239969,
- 2122980,
- 2123007,
- 2112110,
- 2123023,
- 2123028,
- 2112115,
- 2123038,
- 2123058,
- 2123076,
- 2123092,
- 2123115,
- 2123130,
- 2123140,
- 2123146,
- 2123186,
- 2123189,
- 2123192,
- 2123199,
- 2123209,
- 2123220,
- 2112214,
- 2123257,
- 2123260,
- 2123268,
- 2123272,
- 2123297,
- 2123306,
- 2123333,
- 2123345,
- 2123342,
- 2112234,
- 2240963,
- 2241013,
- 2240950,
- 2123370,
- 2123372,
- 2123373,
- 2123387,
- 2123392,
- 2123408,
- 2123410,
- 2112270,
- 2123437,
- 2123441,
- 2123445,
- 2112282,
- 2112284,
- 2112215,
- 2123521,
- 2123538,
- 2241394,
- 2123545,
- 2241491,
- 2241490,
- 2123597,
- 2123604,
- 2123613,
- 2241488,
- 2241508,
- 2241493,
- 2123636,
- 2241498,
- 2123666,
- 2241503,
- 2130787,
- 2123792,
- 2123715,
- 2123720,
- 2123730,
- 2123739,
- 2123767,
- 2241610,
- 2241617,
- 2241611,
- 2123800,
- 2123807,
- 2123821,
- 2241637,
- 2123827,
- 2123835,
- 2123838,
- 2123845,
- 2123849,
- 2123852,
- 2123861,
- 2123863,
- 2112375,
- 2123883,
- 2123886,
- 2123900,
- 2123906,
- 2123920,
- 2123926,
- 2112365,
- 2123928,
- 2123929,
- 2123930,
- 2123932,
- 2123946,
- 2123947,
- 2123956,
- 2123963,
- 2124027,
- 2241764,
- 2241882,
- 2123971,
- 2123973,
- 2123980,
- 2123993,
- 2124004,
- 2124005,
- 2124012,
- 2124023,
- 2124035,
- 2124039,
- 2112391,
- 2241940,
- 2112397,
- 2124102,
- 2124137,
- 2124140,
- 2124154,
- 2124178,
- 2112420,
- 2124182,
- 2124208,
- 2124218,
- 2124220,
- 2124224,
- 2124241,
- 2242105,
- 2242119,
- 2242104,
- 2124259,
- 2124270,
- 2124271,
- 2124275,
- 2112461,
- 2124276,
- 2124286,
- 2124305,
- 2124314,
- 2124317,
- 2242332,
- 2124338,
- 2124339,
- 2124351,
- 2124361,
- 2124410,
- 2124366,
- 2124370,
- 2124388,
- 2242316,
- 2124427,
- 2112496,
- 2124449,
- 2242404,
- 2124459,
- 2124477,
- 2124486,
- 2124500,
- 2124496,
- 2124509,
- 2242559,
- 2242535,
- 2124529,
- 2124530,
- 2124531,
- 2124541,
- 2242596,
- 2124555,
- 2124559,
- 2124560,
- 2124561,
- 2242621,
- 2124567,
- 2112550,
- 2124591,
- 2124618,
- 2124632,
- 2124652,
- 2124661,
- 2124666,
- 2124673,
- 2124699,
- 2124718,
- 2243224,
- 2124733,
- 2124743,
- 2124744,
- 2124745,
- 2124762,
- 2124774,
- 2124775,
- 2124782,
- 2124802,
- 2124810,
- 2124814,
- 2124854,
- 2243711,
- 2124877,
- 2124891,
- 2124909,
- 2124932,
- 2124937,
- 2112707,
- 2124948,
- 2124951,
- 2124973,
- 2124994,
- 2112722,
- 2125020,
- 2125033,
- 2125037,
- 2243840,
- 2125056,
- 2125092,
- 2125094,
- 2125095,
- 2124903,
- 2125103,
- 2125116,
- 2125147,
- 2125152,
- 2125168,
- 2125184,
- 2125185,
- 2125194,
- 2125197,
- 2125201,
- 2125208,
- 2243904,
- 2244090,
- 2244089,
- 2244051,
- 2125227,
- 2125230,
- 2125236,
- 2125250,
- 2125108,
- 2125256,
- 2125262,
- 2125279,
- 2125302,
- 2125366,
- 2125342,
- 2112785,
- 2125362,
- 2125384,
- 2125385,
- 2125387,
- 2125388,
- 2125391,
- 2125395,
- 2125396,
- 2125399,
- 2125411,
- 2112798,
- 2125459,
- 2125479,
- 2125492,
- 2125507,
- 2125621,
- 2125547,
- 2125561,
- 2125563,
- 2125578,
- 2125580,
- 2125592,
- 2125605,
- 2125622,
- 2125628,
- 2244478,
- 2125650,
- 2125655,
- 2125664,
- 2125672,
- 2125712,
- 2125718,
- 2125758,
- 2125727,
- 2125733,
- 2125743,
- 2112868,
- 2125768,
- 2125769,
- 2125801,
- 2244758,
- 2125820,
- 2125824,
- 2125834,
- 2125859,
- 2244867,
- 2125882,
- 2125891,
- 2125895,
- 2125899,
- 2112922,
- 2125925,
- 2125929,
- 2125934,
- 2125942,
- 2125958,
- 2125975,
- 2245062,
- 2125983,
- 2126001,
- 2245118,
- 2126060,
- 2126026,
- 2126033,
- 2126083,
- 2126086,
- 2126088,
- 2126092,
- 2112960,
- 2126127,
- 2126160,
- 2126163,
- 2126174,
- 2112980,
- 2126230,
- 2126208,
- 2126235,
- 2126240,
- 2126242,
- 2126254,
- 2126255,
- 2245564,
- 2126297,
- 2126300,
- 2126343,
- 2113029,
- 2126388,
- 2126393,
- 2126402,
- 2126423,
- 2126435,
- 2246185,
- 2126446,
- 2126447,
- 2126456,
- 2126463,
- 2126478,
- 2246309,
- 2126510,
- 2126512,
- 2126529,
- 2113120,
- 2126540,
- 2113126,
- 2113128,
- 2126579,
- 2126586,
- 2126599,
- 2126610,
- 2126616,
- 2126617,
- 2113155,
- 2126649,
- 2126636,
- 2126643,
- 2126653,
- 2126674,
- 2113172,
- 2126699,
- 2246806,
- 2126702,
- 2126703,
- 2126705,
- 2126721,
- 2126730,
- 2126740,
- 2126744,
- 2126748,
- 2126757,
- 2126777,
- 2126783,
- 2126789,
- 2126795,
- 2126817,
- 2126823,
- 2126841,
- 2126867,
- 2126842,
- 2126849,
- 2126931,
- 2126912,
- 2126915,
- 2126930,
- 2126941,
- 2126977,
- 2126984,
- 2247245,
- 2126994,
- 2126999,
- 2127001,
- 2127009,
- 2127013,
- 2127018,
- 2127033,
- 2127035,
- 2127034,
- 2127062,
- 2127064,
- 2127083,
- 2247510,
- 2127098,
- 2247535,
- 2127136,
- 2127140,
- 2127146,
- 2113367,
- 2247702,
- 2127165,
- 2127166,
- 2127168,
- 2127176,
- 2127184,
- 2127186,
- 2127218,
- 2127217,
- 2127226,
- 2127229,
- 2127230,
- 2127244,
- 2113397,
- 2127266,
- 2113399,
- 2127280,
- 2127287,
- 2127295,
- 2127296,
- 2127302,
- 2127311,
- 2127315,
- 2127325,
- 2127327,
- 2127328,
- 2127335,
- 2127342,
- 2127345,
- 2127363,
- 2127384,
- 2127367,
- 2127375,
- 2113454,
- 2248206,
- 2127379,
- 2127387,
- 2127388,
- 2248247,
- 2127397,
- 2127400,
- 2127420,
- 2127411,
- 2248298,
- 2113481,
- 2127425,
- 2248331,
- 2127433,
- 2127445,
- 2113495,
- 2127470,
- 2127509,
- 2127521,
- 2127520,
- 2127527,
- 2127528,
- 2127535,
- 2248778,
- 2127561,
- 2248789,
- 2127592,
- 2248994,
- 2127639,
- 2127642,
- 2127661,
- 2127669,
- 2249129,
- 2113593,
- 2249189,
- 2249165,
- 2127704,
- 2249246,
- 2127740,
- 2249292,
- 2113624,
- 2127770,
- 2127775,
- 2127778,
- 2127780,
- 2127838,
- 2127839,
- 2127844,
- 2127850,
- 2127852,
- 2127867,
- 2249774,
- 2127877,
- 2127881,
- 2127885,
- 2127897,
- 2127916,
- 2127943,
- 2127978,
- 2249945,
- 2128010,
- 2128020,
- 2128036,
- 2128029,
- 2128031,
- 2128059,
- 2128085,
- 2128102,
- 2128121,
- 2128122,
- 2128126,
- 2250151,
- 2128144,
- 2128155,
- 2128165,
- 2128202,
- 2128216,
- 2113797,
- 2128231,
- 2128242,
- 2128277,
- 2128289,
- 2128297,
- 2128308,
- 2128322,
- 2128327,
- 2128332,
- 2128333,
- 2128342,
- 2113864,
- 2250665,
- 2250676,
- 2113871,
- 2128394,
- 2128405,
- 2128411,
- 2113891,
- 2128440,
- 2128455,
- 2128470,
- 2128473,
- 2128476,
- 2128479,
- 2128487,
- 2128490,
- 2128501,
- 2128514,
- 2128522,
- 2128528,
- 2128556,
- 2251220,
- 2113972,
- 2128569,
- 2128574,
- 2113983,
- 2128588,
- 2128616,
- 2128628,
- 2251492,
- 2251491,
- 2251505,
- 2128701,
- 2128682,
- 2128686,
- 2128687,
- 2114022,
- 2114035,
- 2128767,
- 2128705,
- 2114030,
- 2128725,
- 2128761,
- 2128740,
- 2128742,
- 2128755,
- 2251698,
- 2114055,
- 2128784,
- 2128795,
- 2114062,
- 2128821,
- 2128828,
- 2128837,
- 2128842,
- 2251851,
- 2251876,
- 2128852,
- 2128854,
- 2128858,
- 2128874,
- 2128880,
- 2128899,
- 2128910,
- 2128965,
- 2128970,
- 2128983,
- 2128990,
- 2128993,
- 2129001,
- 2129007,
- 2252334,
- 2252374,
- 2252389,
- 2129062,
- 2252386,
- 2129078,
- 2129079,
- 2252504,
- 2129092,
- 2252482,
- 2129101,
- 2252520,
- 2252579,
- 2129126,
- 2252636,
- 2129141,
- 2129155,
- 2114246,
- 2129170,
- 2129182,
- 2252768,
- 2252756,
- 2129213,
- 2129214,
- 2129216,
- 2129223,
- 2252812,
- 2252795,
- 2114262,
- 2129242,
- 2129258,
- 2129264,
- 2114269,
- 2129279,
- 2252823,
- 2129288,
- 2129303,
- 2252896,
- 2129309,
- 2129319,
- 2129322,
- 2129334,
- 2129344,
- 2129367,
- 2129369,
- 2129382,
- 2114306,
- 2253037,
- 4226569,
- 2129424,
- 2129431,
- 2129437,
- 2129447,
- 2129452,
- 2129477,
- 2129525,
- 2129534,
- 2129542,
- 2129543,
- 2114347,
- 2129562,
- 2114371,
- 2129724,
- 2129723,
- 2129726,
- 2129731,
- 2110657,
- 2253424,
- 2253446,
- 2129763,
- 2129764,
- 2129773,
- 2129789,
- 2129790,
- 2129808,
- 2118011,
- 2243854,
- 2129814,
- 2129820,
- 2129837,
- 2253826,
- 2129859,
- 2129871,
- 2129891,
- 2129906,
- 2129930,
- 2129928,
- 2129942,
- 2129964,
- 2129968,
- 2129987,
- 2130022,
- 2130043,
- 2130073,
- 2130076,
- 2130084,
- 2130087,
- 2130104,
- 2254462,
- 2130117,
- 2130133,
- 2130150,
- 2130189,
- 2130165,
- 2130171,
- 2114542,
- 2130229,
- 2130206,
- 2114544,
- 2130212,
- 2130215,
- 2130220,
- 2254621,
- 2130237,
- 2114568,
- 2130281,
- 2114583,
- 2114588,
- 2130309,
- 2114594,
- 2130328,
- 2130354,
- 2130369,
- 2130371,
- 2130390,
- 2130395,
- 2255069,
- 2130404,
- 2255082,
- 2130412,
- 2130429,
- 2130431,
- 2255215,
- 2130436,
- 2255325,
- 2130457,
- 2130466,
- 2255390,
- 2130492,
- 2130505,
- 2130501,
- 2255448,
- 2114678,
- 2114682,
- 2130519,
- 2255500,
- 2130524,
- 2130531,
- 2255543,
- 2114705,
- 2130557,
- 2130559,
- 2130563,
- 2130570,
- 2130579,
- 2130599,
- 2130600,
- 2130610,
- 2130612,
- 2130618,
- 2130620,
- 2130658,
- 2130664,
- 2130679,
- 2130695,
- 2130696,
- 2130700,
- 2130772,
- 2130715,
- 2130717,
- 2130736,
- 2130748,
- 2130756,
- 2130775,
- 2114750,
- 2114772,
- 2114739,
- 2130836,
- 2130837,
- 2130843,
- 2130845,
- 2130889,
- 2130896,
- 2130900,
- 2130909,
- 2130917,
- 2130937,
- 2130965,
- 2255987,
- 2130967,
- 2131001,
- 2131023,
- 2131025,
- 2131026,
- 2131033,
- 2131034,
- 2131036,
- 2256093,
- 2131045,
- 2131064,
- 2131068,
- 2131073,
- 2114829,
- 2131095,
- 2131110,
- 2131134,
- 2114824,
- 2131150,
- 2131151,
- 2131155,
- 2256485,
- 2131175,
- 2131178,
- 2131183,
- 2131185,
- 2131194,
- 2131227,
- 2131236,
- 2131237,
- 2131243,
- 2131279,
- 2131311,
- 2114883,
- 2131281,
- 2131297,
- 2131298,
- 2256788,
- 2131323,
- 2131325,
- 2131327,
- 2131329,
- 2131334,
- 2131347,
- 2131357,
- 2131359,
- 2256888,
- 2256886,
- 2256887,
- 2131388,
- 2131399,
- 2131402,
- 2131416,
- 2131417,
- 2131423,
- 2131425,
- 2131430,
- 2131446,
- 2131456,
- 2131473,
- 2131486,
- 2131489,
- 2131492,
- 2131495,
- 2257165,
- 2131513,
- 2131516,
- 2257209,
- 2131520,
- 2131539,
- 2131542,
- 2131575,
- 2131591,
- 2131593,
- 2131612,
- 2131613,
- 2131633,
- 2131635,
- 2131649,
- 2131651,
- 2131665,
- 2131669,
- 2131671,
- 2131683,
- 2131686,
- 2115000,
- 2131717,
- 2131719,
- 2131726,
- 2131728,
- 2131743,
- 2131745,
- 2131747,
- 2131761,
- 2131770,
- 2131776,
- 2131779,
- 2131793,
- 2131800,
- 2131812,
- 2131813,
- 2131826,
- 2131836,
- 2257883,
- 2257882,
- 2131879,
- 2131849,
- 2131851,
- 2131859,
- 2131872,
- 2257918,
- 2115045,
- 2131902,
- 2257936,
- 2131905,
- 2131918,
- 2131935,
- 2257993,
- 2131939,
- 2131941,
- 2131942,
- 2131946,
- 2131987,
- 2132008,
- 2132014,
- 2132018,
- 2132028,
- 2115087,
- 2132042,
- 2132056,
- 2258453,
- 2258452,
- 2132073,
- 2258481,
- 2132079,
- 2132128,
- 2132156,
- 2132160,
- 2258579,
- 2132177,
- 2132179,
- 2115137,
- 2132225,
- 2258702,
- 2132279,
- 2258723,
- 2132290,
- 2132293,
- 2132297,
- 2258770,
- 2132322,
- 2132361,
- 2132368,
- 2132383,
- 2132400,
- 2132407,
- 2132440,
- 2132459,
- 2115233,
- 2132467,
- 2132477,
- 2132479,
- 2115247,
- 2132497,
- 2132500,
- 2259333,
- 2132513,
- 2132533,
- 2132542,
- 2132549,
- 2132557,
- 2132568,
- 2132654,
- 2132624,
- 2132663,
- 2132695,
- 2132732,
- 2259588,
- 2132746,
- 2132741,
- 2132749,
- 2132764,
- 2132781,
- 2115340,
- 2132817,
- 2132830,
- 2132854,
- 2132865,
- 2132875,
- 2132884,
- 2132885,
- 2133049,
- 2259891,
- 2133053,
- 2259902,
- 2259911,
- 2133061,
- 2133071,
- 2133079,
- 2133097,
- 2133101,
- 2260152,
- 2133139,
- 2133138,
- 2133145,
- 2115428,
- 2133147,
- 2133206,
- 2133205,
- 2260384,
- 2133233,
- 2260496,
- 2133257,
- 2133262,
- 2133448,
- 2133465,
- 2133516,
- 2115581,
- 2133501,
- 2133510,
- 2261130,
- 2133524,
- 2133526,
- 2133537,
- 2133538,
- 2133543,
- 2261179,
- 2115606,
- 2133558,
- 2133561,
- 2133588,
- 2133602,
- 2133613,
- 2133615,
- 2133656,
- 2133662,
- 2133685,
- 2133691,
- 2261634,
- 2115662,
- 2261747,
- 2133760,
- 2133768,
- 2133803,
- 2133824,
- 2133834,
- 2133848,
- 2262028,
- 2133924,
- 2133940,
- 2262101,
- 2133953,
- 2133958,
- 2161188,
- 2133962,
- 2133965,
- 2133971,
- 2133973,
- 2134001,
- 2134005,
- 2134011,
- 2134028,
- 2134071,
- 2262379,
- 2134083,
- 2134109,
- 2262472,
- 2262473,
- 2134149,
- 2134156,
- 2134160,
- 2134177,
- 2115765,
- 2134192,
- 2134198,
- 2134211,
- 2134216,
- 2262743,
- 2134236,
- 2134239,
- 2262778,
- 2134262,
- 2134258,
- 2134272,
- 2134251,
- 2134270,
- 2134271,
- 2134276,
- 2134278,
- 2134296,
- 2134302,
- 2134327,
- 2134329,
- 2134342,
- 2134343,
- 2134359,
- 2134361,
- 2134388,
- 2134393,
- 2134405,
- 2134451,
- 2134454,
- 2134467,
- 2134468,
- 2263369,
- 2263366,
- 2134508,
- 2134529,
- 2134550,
- 2134551,
- 2263403,
- 2134594,
- 2134602,
- 2134614,
- 2134625,
- 2134629,
- 2134632,
- 2263432,
- 2134652,
- 2134653,
- 2134655,
- 2134665,
- 2134669,
- 2134679,
- 2134681,
- 2134687,
- 2134699,
- 2263482,
- 2263483,
- 2134706,
- 2134719,
- 2134720,
- 2134726,
- 2134734,
- 2134757,
- 2134801,
- 2263582,
- 2263593,
- 2134775,
- 2134825,
- 2263665,
- 2263619,
- 2134865,
- 2134874,
- 2134891,
- 2134897,
- 2134899,
- 2134945,
- 2263705,
- 2263757,
- 2134920,
- 2134923,
- 2134927,
- 2134942,
- 2135029,
- 2263780,
- 2263773,
- 2135025,
- 2134983,
- 2135004,
- 2135015,
- 2135049,
- 2135062,
- 2135063,
- 2135035,
- 2135090,
- 2135099,
- 2264001,
- 2264047,
- 2135149,
- 2135151,
- 2135417,
- 2135430,
- 2135436,
- 2135437,
- 2264336,
- 2264433,
- 2135496,
- 2264571,
- 2264607,
- 2135596,
- 2135603,
- 2135604,
- 2264630,
- 2135612,
- 2135649,
- 2264713,
- 2135682,
- 2264811,
- 2135706,
- 2264882,
- 2116071,
- 2135731,
- 2135738,
- 2135741,
- 2116090,
- 2265080,
- 2135768,
- 2135770,
- 2135773,
- 2116100,
- 2135828,
- 2135843,
- 2116137,
- 2135862,
- 2135873,
- 2135879,
- 2135895,
- 2135899,
- 2135914,
- 2265760,
- 2265777,
- 2135958,
- 2135966,
- 2135985,
- 2135986,
- 2135998,
- 2136012,
- 2136017,
- 2136020,
- 2136024,
- 2136033,
- 2136049,
- 2136068,
- 2136077,
- 2136084,
- 2136086,
- 2116284,
- 2266256,
- 2136114,
- 2136115,
- 2136101,
- 2136135,
- 2136166,
- 2136235,
- 2136237,
- 2136240,
- 2266575,
- 2136247,
- 2136251,
- 2136252,
- 2136258,
- 2136263,
- 2136267,
- 2136289,
- 2136291,
- 2136298,
- 2136304,
- 2136305,
- 2136307,
- 2136328,
- 2116411,
- 2266864,
- 2136342,
- 2136343,
- 2266905,
- 2136346,
- 2136347,
- 2136348,
- 2266960,
- 2136369,
- 2136378,
- 2136379,
- 2136380,
- 2136385,
- 2136390,
- 2136398,
- 2136416,
- 2136483,
- 2136486,
- 2136509,
- 2136511,
- 2136515,
- 2136532,
- 2136537,
- 2136542,
- 2267334,
- 2136560,
- 2136569,
- 2136572,
- 2136586,
- 2136593,
- 2136602,
- 2136608,
- 2136625,
- 2136644,
- 2136652,
- 2136664,
- 2116546,
- 2136751,
- 2116554,
- 2136759,
- 2116562,
- 2136761,
- 2267762,
- 2136774,
- 2136784,
- 2136786,
- 2136789,
- 2136800,
- 2136805,
- 2136809,
- 2136844,
- 2136848,
- 2136850,
- 2136854,
- 2136860,
- 2136875,
- 2136893,
- 2116640,
- 2136907,
- 2136931,
- 2136933,
- 2136939,
- 2136940,
- 2136950,
- 2136951,
- 2136998,
- 2137004,
- 2268635,
- 2137010,
- 2137016,
- 2137022,
- 2137075,
- 2137048,
- 2137053,
- 2137066,
- 2137071,
- 2137070,
- 2268693,
- 2268810,
- 2268745,
- 2137110,
- 2137112,
- 2137113,
- 2137114,
- 2137117,
- 2137122,
- 2137129,
- 2268868,
- 2137137,
- 2137143,
- 2137157,
- 2137180,
- 2268905,
- 2137161,
- 2137162,
- 2268891,
- 2137172,
- 2137176,
- 2137179,
- 2137181,
- 2137183,
- 2137193,
- 2137194,
- 2137195,
- 2137197,
- 2137198,
- 2137202,
- 2137205,
- 2137210,
- 2137318,
- 2137330,
- 2137355,
- 2269143,
- 2137361,
- 2137367,
- 2137368,
- 2269231,
- 2116804,
- 2269210,
- 2137394,
- 2116817,
- 2137418,
- 2137439,
- 2137442,
- 2269433,
- 2269314,
- 2137459,
- 2137462,
- 2137463,
- 2137476,
- 2137497,
- 2137505,
- 2137535,
- 2137525,
- 2137529,
- 2137533,
- 2137545,
- 2137562,
- 2137568,
- 2137571,
- 2116871,
- 2137610,
- 2137602,
- 2137613,
- 2137628,
- 2137723,
- 2236952,
- 2137728,
- 2137733,
- 2137755,
- 2270092,
- 2137789,
- 2270263,
- 2137823,
- 2137855,
- 2137858,
- 2116983,
- 2137859,
- 2137914,
- 2137917,
- 2137926,
- 2137939,
- 2137941,
- 2137944,
- 2270705,
- 2137949,
- 2270722,
- 2137961,
- 2137965,
- 2137968,
- 2270898,
- 2128186,
- 2110996,
- 2111661,
- 2112972,
- 2113500,
- 2115006,
- 2115088,
- 2116478,
- 2116664,
- 2116833,
- 2117132,
- 2117155,
- 2117156,
- 2117241,
- 2117363,
- 2117388,
- 2117401,
- 2117419,
- 2117422,
- 2117425,
- 2117508,
- 2117534,
- 2117559,
- 2117636,
- 2117644,
- 2117708,
- 2117727,
- 2117730,
- 2117751,
- 2117774,
- 2117790,
- 2117794,
- 2117827,
- 2117864,
- 2117873,
- 2117886,
- 2117895,
- 2117900,
- 2117901,
- 2117902,
- 2117939,
- 2117944,
- 2118004,
- 2118020,
- 2118072,
- 2118074,
- 2118088,
- 2118095,
- 2118097,
- 2118099,
- 2118100,
- 2118104,
- 2118111,
- 2118149,
- 2118182,
- 2118184,
- 2118187,
- 2118193,
- 2118194,
- 2118197,
- 2118204,
- 2118234,
- 2118240,
- 2118254,
- 2118264,
- 2118265,
- 2118282,
- 2118284,
- 2118369,
- 2118377,
- 2118385,
- 2118403,
- 2118417,
- 2118431,
- 2118445,
- 2118450,
- 2118461,
- 2118501,
- 2118509,
- 2118521,
- 2118526,
- 2118548,
- 2118553,
- 2118570,
- 2118575,
- 2118586,
- 2118593,
- 2118596,
- 2118597,
- 2118624,
- 2118675,
- 2118698,
- 2118705,
- 2118708,
- 2118709,
- 2118732,
- 2118823,
- 2118826,
- 2118833,
- 2118843,
- 2118862,
- 2118890,
- 2118908,
- 2118917,
- 2118920,
- 2118933,
- 2118951,
- 2118954,
- 2118966,
- 2118993,
- 2119014,
- 2119055,
- 2119058,
- 2119060,
- 2119076,
- 2119090,
- 2119107,
- 2119110,
- 2119123,
- 2119131,
- 2119148,
- 2119150,
- 2119153,
- 2119158,
- 2119160,
- 2119173,
- 2119181,
- 2119185,
- 2119186,
- 2119212,
- 2119221,
- 2119225,
- 2119245,
- 2119252,
- 2119301,
- 2119327,
- 2119334,
- 2119351,
- 2119372,
- 2119375,
- 2119385,
- 2119393,
- 2119403,
- 2119405,
- 2119409,
- 2119431,
- 2119436,
- 2119450,
- 2119451,
- 2119453,
- 2119468,
- 2119470,
- 2119485,
- 2119486,
- 2119519,
- 2119531,
- 2119533,
- 2119546,
- 2119555,
- 2119575,
- 2119598,
- 2119637,
- 2119655,
- 2119693,
- 2119718,
- 2119757,
- 2119759,
- 2119775,
- 2119789,
- 2119807,
- 2119809,
- 2119832,
- 2119868,
- 2119967,
- 2119971,
- 2120025,
- 2120057,
- 2120087,
- 2120111,
- 2120115,
- 2120159,
- 2120177,
- 2120184,
- 2120370,
- 2120376,
- 2120426,
- 2120438,
- 2120475,
- 2120477,
- 2120481,
- 2120504,
- 2120631,
- 2120663,
- 2120672,
- 2120735,
- 2120746,
- 2120748,
- 2120758,
- 2120793,
- 2120796,
- 2120813,
- 2120925,
- 2120961,
- 2121012,
- 2121021,
- 2121049,
- 2121086,
- 2121091,
- 2121159,
- 2121209,
- 2121256,
- 2121266,
- 2121269,
- 2121307,
- 2121320,
- 2121322,
- 2121335,
- 2121344,
- 2121355,
- 2121395,
- 2121405,
- 2121425,
- 2121428,
- 2121429,
- 2121549,
- 2121644,
- 2121706,
- 2121735,
- 2121801,
- 2121812,
- 2121831,
- 2121915,
- 2121924,
- 2121981,
- 2121994,
- 2122006,
- 2122026,
- 2122038,
- 2122078,
- 2122084,
- 2122107,
- 2122109,
- 2122111,
- 2122141,
- 2122168,
- 2122204,
- 2122210,
- 2122213,
- 2122216,
- 2122244,
- 2122247,
- 2122289,
- 2122297,
- 2122301,
- 2122362,
- 2122384,
- 2122408,
- 2122458,
- 2122484,
- 2122518,
- 2122538,
- 2122550,
- 2122566,
- 2122571,
- 2122579,
- 2122609,
- 2122613,
- 2122623,
- 2122626,
- 2122634,
- 2122670,
- 2122671,
- 2122730,
- 2122744,
- 2122745,
- 2122770,
- 2122776,
- 2122784,
- 2122788,
- 2122794,
- 2122805,
- 2122813,
- 2122815,
- 2122834,
- 2122847,
- 2122868,
- 2122896,
- 2122904,
- 2122905,
- 2122924,
- 2122931,
- 2122989,
- 2122992,
- 2123035,
- 2123039,
- 2123054,
- 2123081,
- 2123104,
- 2123154,
- 2123157,
- 2123188,
- 2123198,
- 2123208,
- 2123214,
- 2123216,
- 2123231,
- 2123390,
- 2123403,
- 2123404,
- 2123443,
- 2123456,
- 2123471,
- 2123557,
- 2123573,
- 2123605,
- 2123648,
- 2123663,
- 2123665,
- 2123684,
- 2123697,
- 2123701,
- 2123710,
- 2123816,
- 2123910,
- 2124011,
- 2124021,
- 2124055,
- 2124083,
- 2124088,
- 2124123,
- 2124133,
- 2124200,
- 2124203,
- 2124207,
- 2124261,
- 2124273,
- 2124362,
- 2124373,
- 2124391,
- 2124401,
- 2124463,
- 2124488,
- 2124489,
- 2124547,
- 2124603,
- 2124607,
- 2124669,
- 2124670,
- 2124720,
- 2124791,
- 2124793,
- 2124804,
- 2124809,
- 2124813,
- 2124844,
- 2124874,
- 2124882,
- 2124884,
- 2124921,
- 2124972,
- 2124980,
- 2125010,
- 2125153,
- 2125180,
- 2125241,
- 2125296,
- 2125381,
- 2125427,
- 2125435,
- 2125437,
- 2125449,
- 2125500,
- 2125530,
- 2125531,
- 2125606,
- 2125609,
- 2125616,
- 2125703,
- 2125725,
- 2125742,
- 2125751,
- 2125837,
- 2125856,
- 2125897,
- 2125976,
- 2126000,
- 2126037,
- 2126038,
- 2126149,
- 2126258,
- 2126324,
- 2126359,
- 2126367,
- 2126403,
- 2126415,
- 2126416,
- 2126426,
- 2126432,
- 2126440,
- 2126455,
- 2126468,
- 2126537,
- 2126565,
- 2126580,
- 2126594,
- 2126603,
- 2126622,
- 2126626,
- 2126650,
- 2126651,
- 2126669,
- 2126680,
- 2126695,
- 2126962,
- 2127023,
- 2127071,
- 2127076,
- 2127092,
- 2127099,
- 2127126,
- 2127137,
- 2127167,
- 2127198,
- 2127257,
- 2127268,
- 2127297,
- 2127300,
- 2127308,
- 2127319,
- 2127324,
- 2127329,
- 2127343,
- 2127364,
- 2127372,
- 2127389,
- 2127410,
- 2127416,
- 2127429,
- 2127434,
- 2127455,
- 2127533,
- 2127549,
- 2127577,
- 2127595,
- 2127600,
- 2127609,
- 2127616,
- 2127630,
- 2127650,
- 2127656,
- 2127663,
- 2127673,
- 2127678,
- 2127685,
- 2127690,
- 2127695,
- 2127710,
- 2127716,
- 2127719,
- 2127724,
- 2127748,
- 2127756,
- 2127757,
- 2127766,
- 2127783,
- 2127791,
- 2127799,
- 2127806,
- 2127817,
- 2127825,
- 2127833,
- 2127857,
- 2127927,
- 2127964,
- 2127998,
- 2128024,
- 2128033,
- 2128049,
- 2128051,
- 2128073,
- 2128083,
- 2128140,
- 2128159,
- 2128167,
- 2128168,
- 2128191,
- 2128194,
- 2128212,
- 2128235,
- 2128252,
- 2128299,
- 2128324,
- 2128362,
- 2128386,
- 2128396,
- 2128432,
- 2128442,
- 2128452,
- 2128512,
- 2128518,
- 2128532,
- 2128565,
- 2128573,
- 2128638,
- 2128683,
- 2128759,
- 2128800,
- 2128812,
- 2128816,
- 2128872,
- 2128882,
- 2128888,
- 2128892,
- 2128894,
- 2128905,
- 2128936,
- 2128943,
- 2128962,
- 2128978,
- 2128979,
- 2128987,
- 2128988,
- 2128989,
- 2129010,
- 2129021,
- 2129031,
- 2129054,
- 2129082,
- 2129095,
- 2129107,
- 2129114,
- 2129212,
- 2129229,
- 2129282,
- 2129285,
- 2129293,
- 2129297,
- 2129310,
- 2129331,
- 2129337,
- 2129360,
- 2129381,
- 2129397,
- 2129398,
- 2129455,
- 2129462,
- 2129476,
- 2129519,
- 2129528,
- 2129537,
- 2129725,
- 2129755,
- 2129757,
- 2129765,
- 2129777,
- 2129791,
- 2129792,
- 2129803,
- 2129826,
- 2129917,
- 2129918,
- 2129919,
- 2129927,
- 2129933,
- 2129950,
- 2129977,
- 2130056,
- 2130062,
- 2130127,
- 2130132,
- 2130157,
- 2130160,
- 2130167,
- 2130170,
- 2130174,
- 2130179,
- 2130199,
- 2130224,
- 2130263,
- 2130287,
- 2130291,
- 2130315,
- 2130320,
- 2130331,
- 2130334,
- 2130379,
- 2130389,
- 2130397,
- 2130398,
- 2130401,
- 2130415,
- 2130422,
- 2130432,
- 2130443,
- 2130451,
- 2130452,
- 2130458,
- 2130490,
- 2130500,
- 2130541,
- 2130564,
- 2130569,
- 2130577,
- 2130602,
- 2130608,
- 2130640,
- 2130666,
- 2130671,
- 2130678,
- 2130774,
- 2130808,
- 2130936,
- 2130940,
- 2131032,
- 2131091,
- 2131121,
- 2131133,
- 2131195,
- 2131270,
- 2131286,
- 2131293,
- 2131333,
- 2131352,
- 2131522,
- 2131526,
- 2131648,
- 2131732,
- 2131746,
- 2131758,
- 2131769,
- 2131805,
- 2131835,
- 2131852,
- 2131854,
- 2131863,
- 2131864,
- 2131870,
- 2131875,
- 2131886,
- 2131903,
- 2131913,
- 2131930,
- 2131992,
- 2131995,
- 2132013,
- 2132026,
- 2132037,
- 2132043,
- 2132046,
- 2132053,
- 2132058,
- 2132078,
- 2132122,
- 2132123,
- 2132124,
- 2132173,
- 2132192,
- 2132207,
- 2132238,
- 2132239,
- 2132262,
- 2132277,
- 2132314,
- 2132316,
- 2132331,
- 2132336,
- 2132348,
- 2132389,
- 2132405,
- 2132412,
- 2132437,
- 2132553,
- 2132567,
- 2132583,
- 2132606,
- 2132614,
- 2132630,
- 2132662,
- 2132681,
- 2132689,
- 2132701,
- 2132716,
- 2132725,
- 2132742,
- 2132751,
- 2132753,
- 2132805,
- 2132818,
- 2132845,
- 2132856,
- 2132860,
- 2132862,
- 2132869,
- 2132895,
- 2133067,
- 2133075,
- 2133115,
- 2133178,
- 2133189,
- 2133193,
- 2133202,
- 2133228,
- 2133237,
- 2133239,
- 2133249,
- 2133251,
- 2133271,
- 2133276,
- 2133358,
- 2133393,
- 2133407,
- 2133419,
- 2133426,
- 2133461,
- 2133479,
- 2133489,
- 2133490,
- 2133492,
- 2133505,
- 2133515,
- 2133542,
- 2133553,
- 2133568,
- 2133569,
- 2133581,
- 2133583,
- 2133596,
- 2133601,
- 2133609,
- 2133617,
- 2133621,
- 2133623,
- 2133641,
- 2133648,
- 2133653,
- 2133658,
- 2133671,
- 2133673,
- 2133677,
- 2133736,
- 2133744,
- 2133767,
- 2133784,
- 2133797,
- 2133799,
- 2133804,
- 2133813,
- 2133818,
- 2133827,
- 2133831,
- 2133841,
- 2133845,
- 2133920,
- 2133921,
- 2133922,
- 2133925,
- 2134020,
- 2134043,
- 2134063,
- 2134092,
- 2134107,
- 2134128,
- 2134132,
- 2134137,
- 2134155,
- 2134168,
- 2134176,
- 2134194,
- 2134205,
- 2134217,
- 2134256,
- 2134277,
- 2134309,
- 2134362,
- 2134375,
- 2134394,
- 2134410,
- 2134417,
- 2134421,
- 2134448,
- 2134459,
- 2134461,
- 2134466,
- 2134469,
- 2134528,
- 2134537,
- 2134563,
- 2134646,
- 2134670,
- 2134703,
- 2134715,
- 2134716,
- 2134721,
- 2134723,
- 2134725,
- 2134728,
- 2134804,
- 2134835,
- 2134838,
- 2134872,
- 2134911,
- 2134914,
- 2134922,
- 2134971,
- 2134988,
- 2135014,
- 2135033,
- 2135042,
- 2135053,
- 2135054,
- 2135086,
- 2135116,
- 2135432,
- 2135457,
- 2135487,
- 2135494,
- 2135497,
- 2135505,
- 2135506,
- 2135520,
- 2135524,
- 2135526,
- 2135588,
- 2135601,
- 2135608,
- 2135613,
- 2135636,
- 2135668,
- 2135675,
- 2135679,
- 2135681,
- 2135683,
- 2135689,
- 2135702,
- 2135726,
- 2135811,
- 2135835,
- 2135841,
- 2135842,
- 2135848,
- 2135857,
- 2135911,
- 2135926,
- 2135933,
- 2135935,
- 2135961,
- 2135967,
- 2135980,
- 2135993,
- 2136013,
- 2136032,
- 2136047,
- 2136071,
- 2136102,
- 2136110,
- 2136162,
- 2136163,
- 2136244,
- 2136261,
- 2136322,
- 2136337,
- 2136341,
- 2136373,
- 2136392,
- 2136404,
- 2136414,
- 2136545,
- 2136588,
- 2136592,
- 2136611,
- 2136641,
- 2136657,
- 2136765,
- 2136766,
- 2136833,
- 2136841,
- 2136843,
- 2136845,
- 2136846,
- 2136857,
- 2136885,
- 2136904,
- 2136917,
- 2136936,
- 2136960,
- 2136966,
- 2136976,
- 2136989,
- 2137008,
- 2137023,
- 2137032,
- 2137087,
- 2137090,
- 2137116,
- 2137141,
- 2137156,
- 2137174,
- 2137185,
- 2137192,
- 2137392,
- 2137405,
- 2137450,
- 2137467,
- 2137573,
- 2137577,
- 2137587,
- 2137722,
- 2137730,
- 2137731,
- 2137732,
- 2137776,
- 2137828,
- 2137840,
- 2137842,
- 2137865,
- 2137871,
- 2137876,
- 2137883,
- 2137890,
- 2137894,
- 2137898,
- 2137899,
- 2137908,
- 2137946,
- 2137967,
- 2138014,
- 2138021,
- 2228469,
- 2248196,
- 2248690,
- 2260339,
- 2118029,
- 4216196,
- 4218722,
- 4219208,
- 4220959,
- 2133716,
- 2110942,
- 2138047,
- 2138048,
- 2138049,
- 2138050,
- 2269874,
- 4214286,
- 4214310,
- 2228568,
- 4214643,
- 4214870,
- 4215021,
- 4215147,
- 2229681,
- 8409566,
- 4215293,
- 2229996,
- 4215396,
- 4215409,
- 6312562,
- 4215615,
- 2275155,
- 4215872,
- 2231640,
- 4216220,
- 6313387,
- 4216329,
- 6313646,
- 8410798,
- 2275162,
- 2275164,
- 4216526,
- 4216558,
- 4216790,
- 4216893,
- 4216921,
- 4217167,
- 6314321,
- 4217184,
- 4217186,
- 4217562,
- 4217690,
- 4217715,
- 4217724,
- 8412083,
- 2251212,
- 4218435,
- 2275190,
- 6315747,
- 4218680,
- 4218785,
- 4218845,
- 4219234,
- 6316466,
- 4219384,
- 2111908,
- 2111928,
- 2240066,
- 2275196,
- 4220150,
- 2112092,
- 2230216,
- 4220254,
- 2240491,
- 4220295,
- 4220297,
- 2259380,
- 4220302,
- 2112196,
- 2112203,
- 4220385,
- 4220519,
- 4220526,
- 6317761,
- 2275202,
- 2112133,
- 4220672,
- 4220769,
- 4220868,
- 4220930,
- 4221245,
- 4221278,
- 2275211,
- 4221596,
- 2112499,
- 2242545,
- 2275220,
- 4222008,
- 6319274,
- 2138060,
- 4222436,
- 2112817,
- 4222472,
- 4222578,
- 6319819,
- 4222677,
- 4222683,
- 4222811,
- 6319963,
- 4222820,
- 4222836,
- 2244683,
- 4223550,
- 2113088,
- 2111649,
- 6321098,
- 4224189,
- 4224349,
- 4224444,
- 2275244,
- 4224520,
- 4224612,
- 4224617,
- 2275247,
- 4224823,
- 4224894,
- 4225447,
- 4225457,
- 4225726,
- 4226016,
- 6323280,
- 4226313,
- 4226482,
- 6323634,
- 4226878,
- 6324193,
- 4227090,
- 2275273,
- 4227286,
- 4227337,
- 4227369,
- 4227596,
- 4227611,
- 4227648,
- 2275279,
- 4228052,
- 4228111,
- 2275282,
- 4228330,
- 2256030,
- 4228433,
- 4228451,
- 4228559,
- 4228686,
- 4228706,
- 4228746,
- 4229186,
- 4229239,
- 4229441,
- 4229974,
- 6327126,
- 4229980,
- 2115359,
- 2260028,
- 4230250,
- 4230265,
- 6327498,
- 4230503,
- 2115614,
- 4230915,
- 6328132,
- 6328261,
- 6328276,
- 4231158,
- 6328439,
- 8425591,
- 31494281,
- 16814218,
- 4231336,
- 4231501,
- 4231913,
- 4231989,
- 4232075,
- 2275312,
- 4232653,
- 4232746,
- 6330008,
- 4232871,
- 8427519,
- 10524671,
- 2275173,
- 4233505,
- 8427863,
- 4234152,
- 4234158,
- 4234169,
- 4234248,
- 4234276,
- 4234299,
- 2275341,
- 4234470,
- 4234688,
- 4234690,
- 2275351,
- 6330607,
- 4339773,
- 6322952,
- 4220015,
- 6323262,
- 4225909,
- 6321429,
- 6326813,
- 6316130,
- 4223096,
- 12604329,
- 4226178,
- 4232857,
- 4228692,
- 4227441,
- 4232053,
- 4215980,
- 4223713,
- 4221079,
- 4234155,
- 4215753,
- 4220758,
- 4224294,
- 8418577,
- 4225736,
- 4219706,
- 6328385,
- 4233665,
- 4220327,
- 4231644,
- 4233133,
- 4227730,
- 6323326,
- 4223546,
- 6326277,
- 4228867,
- 2136861,
- 2136876,
- 2117634,
- 2118110,
- 2118407,
- 2120684,
- 4218570,
- 2123294,
- 2123543,
- 2125898,
- 4215262,
- 2119009,
- 2124858,
- 2128480,
- 2253644,
- 2131971,
- 2135467,
- 2135893,
- 2268733,
- 2270746,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- false,
- 6319778,
- 8413682,
- 6325778,
- 4230015,
- 2117173,
- 2117212,
- 2117219,
- 2117224,
- 2117236,
- 2117237,
- 2117271,
- 2117295,
- 2117339,
- 2117346,
- 2117352,
- 2117359,
- 2117374,
- 2117378,
- 2117384,
- 2117394,
- 2117399,
- 2117427,
- 2117429,
- 2117440,
- 2117442,
- 2117451,
- 2117452,
- 2117458,
- 2117475,
- 2117486,
- 2117489,
- 2117497,
- 2117505,
- 2117513,
- 2117516,
- 2117518,
- 2117520,
- 2117523,
- 2117529,
- 2117535,
- 2117561,
- 2117563,
- 2117564,
- 2117565,
- 2117568,
- 2117569,
- 2117574,
- 2117576,
- 2117580,
- 2117596,
- 2117602,
- 2117616,
- 2117628,
- 2117639,
- 2117642,
- 2117655,
- 2117661,
- 2117680,
- 2117682,
- 2117683,
- 2117685,
- 2117701,
- 2117706,
- 2117713,
- 2117714,
- 2117721,
- 2117728,
- 2117735,
- 2117741,
- 2117745,
- 2117761,
- 2117763,
- 2117764,
- 2117766,
- 2117770,
- 2117776,
- 2117787,
- 2117791,
- 2117792,
- 2117793,
- 2117807,
- 2117808,
- 2117817,
- 2117821,
- 2117824,
- 2117843,
- 2117852,
- 2117853,
- 2117855,
- 2117858,
- 2117860,
- 2117878,
- 2117882,
- 4215026,
- 2117913,
- 2117916,
- 2117917,
- 2117923,
- 2117927,
- 2117928,
- 2117932,
- 2117933,
- 2117935,
- 2117937,
- 2117940,
- 2117945,
- 2117954,
- 2117967,
- 2117971,
- 2117976,
- 2117990,
- 2118014,
- 2118030,
- 2118079,
- 2118082,
- 2118098,
- 2118101,
- 2118117,
- 2118130,
- 2118135,
- 2118168,
- 2118178,
- 2118213,
- 2118232,
- 2118239,
- 2118272,
- 2118277,
- 2118293,
- 2118294,
- 2118295,
- 2118298,
- 2118309,
- 2118311,
- 2118320,
- 2118326,
- 2118327,
- 2118328,
- 2118333,
- 2118340,
- 2118342,
- 2118351,
- 2118356,
- 2118364,
- 2118373,
- 2118376,
- 2118378,
- 2118380,
- 2118388,
- 2118390,
- 2118412,
- 2118419,
- 2118424,
- 2118427,
- 2118430,
- 2118437,
- 2118439,
- 2118440,
- 2118441,
- 2118443,
- 2118444,
- 2118448,
- 2118460,
- 2118489,
- 2118491,
- 4215653,
- 2118531,
- 2118535,
- 2118536,
- 2118542,
- 2118561,
- 2118581,
- 2118584,
- 2118589,
- 2118607,
- 2118610,
- 2118611,
- 2118622,
- 4215776,
- 2118631,
- 2118658,
- 2118682,
- 2118689,
- 2118703,
- 2118724,
- 2118727,
- 2118735,
- 2118750,
- 2118756,
- 2118759,
- 2118761,
- 2118765,
- 2118766,
- 2118785,
- 2118787,
- 2118789,
- 2118793,
- 2118801,
- 2118815,
- 2118858,
- 2118880,
- 2118902,
- 2118910,
- 2118924,
- 2118925,
- 2118962,
- 2118971,
- 2118973,
- 2118985,
- 2118989,
- 2119000,
- 2119002,
- 2119003,
- 2119039,
- 2119059,
- 2119063,
- 2119075,
- 2119105,
- 2119115,
- 2119127,
- 2119128,
- 2119134,
- 2119167,
- 4216325,
- 2119178,
- 2119193,
- 2119219,
- 2119228,
- 2119233,
- 2119235,
- 2119236,
- 2119238,
- 2119265,
- 2119266,
- 2119267,
- 2119285,
- 2119300,
- 2119307,
- 2119335,
- 2119339,
- 2119358,
- 2119371,
- 2119376,
- 2119388,
- 2119397,
- 2119398,
- 2119399,
- 2119425,
- 2119426,
- 2119441,
- 2119456,
- 2119458,
- 2119460,
- 2119461,
- 2119466,
- 2119487,
- 2119506,
- 2119522,
- 2119527,
- 2119534,
- 2119537,
- 2119545,
- 2119550,
- 2119553,
- 2119572,
- 2119577,
- 2119583,
- 2119585,
- 2119573,
- 2119591,
- 2119593,
- 2119613,
- 2119645,
- 2119657,
- 2119678,
- 2119683,
- 2119688,
- 2119649,
- 2119692,
- 2119707,
- 2119711,
- 2119725,
- 2119743,
- 2119760,
- 2119765,
- 2119784,
- 2119800,
- 2119815,
- 2119816,
- 2119820,
- 2119830,
- 2119840,
- 2119841,
- 2119842,
- 2119846,
- 2119876,
- 2119874,
- 2119880,
- 2119894,
- 2119901,
- 2119905,
- 4217094,
- 2119954,
- 2119955,
- 2119965,
- 2119969,
- 2119976,
- 2119984,
- 2119987,
- 2119989,
- 2119990,
- 2119999,
- 2120003,
- 2120018,
- 2120030,
- 2120043,
- 2120047,
- 2120050,
- 2120059,
- 2120076,
- 2120078,
- 2120085,
- 2120103,
- 2120109,
- 2120112,
- 2120119,
- 2120129,
- 2120132,
- 2120175,
- 2120178,
- 2120180,
- 2120183,
- 2120192,
- 2120206,
- 2120210,
- 2120222,
- 2120228,
- 2120232,
- 2120234,
- 2120240,
- 2120260,
- 2120261,
- 2120264,
- 2120268,
- 2120272,
- 2120286,
- 2120315,
- 2120336,
- 2120339,
- 2120342,
- 2120345,
- 2120379,
- 2120390,
- 2120392,
- 2120399,
- 2120445,
- 2120449,
- 2120523,
- 2120542,
- 2120558,
- 2120582,
- 2120590,
- 2120592,
- 2120593,
- 2120596,
- 2120616,
- 2120617,
- 2120621,
- 2120623,
- 2120625,
- 2120626,
- 2120634,
- 2120636,
- 2120641,
- 2120653,
- 2120655,
- 2120665,
- 2120666,
- 2120687,
- 2120692,
- 2120716,
- 2120727,
- 2120742,
- 2120750,
- 2120754,
- 2120757,
- 2120794,
- 2120820,
- 2120821,
- 2120827,
- 2120829,
- 2120839,
- 2120850,
- 2120861,
- 2120882,
- 2120884,
- 2120919,
- 2120942,
- 2120945,
- 2120946,
- 2120978,
- 2120995,
- 2121023,
- 2121032,
- 2121045,
- 2121041,
- 2121055,
- 2121056,
- 2121058,
- 2121060,
- 2121081,
- 2121082,
- 2121087,
- 2121098,
- 2121107,
- 2121109,
- 2121115,
- 2121119,
- 2121131,
- 2121155,
- 2121166,
- 2121177,
- 2121223,
- 2121229,
- 2121248,
- 2121291,
- 2121296,
- 2121297,
- 2121308,
- 2121328,
- 2121358,
- 2121378,
- 2121380,
- 2121393,
- 2121420,
- 2121422,
- 2121436,
- 2121438,
- 2121445,
- 2121451,
- 2121478,
- 2121497,
- 2121508,
- 2121515,
- 2121516,
- 2121518,
- 2121520,
- 2121535,
- 2121540,
- 2121563,
- 2121568,
- 2121583,
- 2121588,
- 2121589,
- 2121592,
- 2121594,
- 2121613,
- 2121622,
- 2121629,
- 2121643,
- 2121648,
- 2121649,
- 2121672,
- 2121680,
- 2121681,
- 2121704,
- 2121708,
- 2121714,
- 2121718,
- 2121722,
- 2121738,
- 2121747,
- 2121759,
- 2121773,
- 2121792,
- 2121800,
- 2121809,
- 2121814,
- 2121815,
- 2121841,
- 2121854,
- 2121858,
- 2121862,
- 2121864,
- 2121870,
- 2121873,
- 2121875,
- 2121880,
- 4219038,
- 2121890,
- 2121893,
- 2121911,
- 2121922,
- 2121929,
- 2121930,
- 2121934,
- 2121935,
- 2121954,
- 2121957,
- 2121980,
- 2121986,
- 2121991,
- 2121996,
- 2122007,
- 2122018,
- 2122033,
- 2122037,
- 2122041,
- 2122053,
- 2122057,
- 2122092,
- 2122098,
- 2122104,
- 2122112,
- 2122113,
- 2122115,
- 2122116,
- 2122123,
- 2122140,
- 2122144,
- 2122154,
- 2122176,
- 2122177,
- 2122190,
- 2122191,
- 2122206,
- 2122209,
- 2122215,
- 2122217,
- 2122220,
- 2122221,
- 2122223,
- 2122241,
- 2122243,
- 2122268,
- 2122272,
- 2122279,
- 2122283,
- 2122306,
- 2122308,
- 2122320,
- 2122324,
- 2122332,
- 2122365,
- 2122381,
- 2122382,
- 2122383,
- 2122419,
- 2122422,
- 2122423,
- 2122426,
- 2122430,
- 2122431,
- 2122446,
- 2122474,
- 2122482,
- 2122500,
- 2122507,
- 2122515,
- 2122537,
- 2122541,
- 2122570,
- 2122578,
- 2122580,
- 2122584,
- 2122587,
- 2122598,
- 2122605,
- 2122616,
- 2122645,
- 2122650,
- 2122660,
- 2122662,
- 2122669,
- 2122689,
- 2122693,
- 2122696,
- 2122702,
- 2122707,
- 2122739,
- 2122762,
- 2122800,
- 2122827,
- 2122831,
- 2122835,
- 2122844,
- 2122849,
- 2122851,
- 2122885,
- 2122895,
- 2122907,
- 2122913,
- 2122915,
- 2122918,
- 2122920,
- 2122941,
- 2122953,
- 2122961,
- 2122985,
- 2122986,
- 2122997,
- 2123009,
- 2123016,
- 2123017,
- 2123018,
- 2123027,
- 2123046,
- 2123057,
- 2123066,
- 2123068,
- 2123069,
- 2123075,
- 2123088,
- 2123090,
- 2123103,
- 2123133,
- 2123160,
- 2123168,
- 2123171,
- 2123174,
- 2123182,
- 2123187,
- 2123222,
- 2123224,
- 4220383,
- 2123252,
- 2123253,
- 2123262,
- 2123263,
- 2123277,
- 2123281,
- 2123282,
- 2123286,
- 2123293,
- 2123299,
- 2123302,
- 2123305,
- 2123321,
- 2123319,
- 2123328,
- 2123334,
- 2123338,
- 2123352,
- 2123360,
- 2123381,
- 2123391,
- 2123385,
- 2123388,
- 2123418,
- 2123419,
- 2123420,
- 2123423,
- 4220597,
- 2123458,
- 2123459,
- 2123468,
- 2123470,
- 2123476,
- 2123487,
- 2123499,
- 2123502,
- 2123527,
- 2123548,
- 2123552,
- 2123554,
- 2123582,
- 2123589,
- 2123628,
- 2123652,
- 2123662,
- 2123670,
- 2123673,
- 2123708,
- 2123709,
- 2123714,
- 2123717,
- 2123721,
- 2123740,
- 2123745,
- 2123750,
- 2123762,
- 2123766,
- 2123796,
- 2123801,
- 2123815,
- 2123823,
- 2123839,
- 2123850,
- 2123864,
- 2123887,
- 2123888,
- 2123889,
- 2123897,
- 2123899,
- 2123912,
- 2123937,
- 2123945,
- 2123950,
- 2123985,
- 2123987,
- 2123996,
- 2123997,
- 2124010,
- 2124022,
- 2124029,
- 2124038,
- 2124041,
- 2124048,
- 2124054,
- 2124081,
- 2124101,
- 2124110,
- 2124134,
- 2124144,
- 2124145,
- 2124155,
- 2124173,
- 2124193,
- 2124216,
- 2124229,
- 2124232,
- 4221438,
- 2124288,
- 2124291,
- 2124320,
- 2124324,
- 2124343,
- 4221525,
- 2124394,
- 2124417,
- 2124422,
- 2124423,
- 2124443,
- 2124464,
- 2124465,
- 2124468,
- 2124478,
- 2124479,
- 2124492,
- 2124501,
- 2124502,
- 2124528,
- 2124540,
- 2124546,
- 2124550,
- 2124551,
- 2124553,
- 2124584,
- 2124587,
- 2124598,
- 2124621,
- 2124626,
- 2124637,
- 2124651,
- 2124654,
- 2124656,
- 2124677,
- 2124695,
- 2124703,
- 2124704,
- 2124706,
- 2124707,
- 2124712,
- 2124716,
- 2124728,
- 2124729,
- 2124739,
- 2124740,
- 2124771,
- 2124818,
- 2124825,
- 2124831,
- 2124838,
- 2124839,
- 2124840,
- 2124846,
- 2124859,
- 2124875,
- 2124879,
- 2124907,
- 2124920,
- 2124935,
- 2124959,
- 2124976,
- 2124978,
- 2125005,
- 2125007,
- 2125009,
- 2125031,
- 2125042,
- 2125044,
- 2125063,
- 2125071,
- 2125075,
- 2125082,
- 2125096,
- 2125151,
- 2125159,
- 2125202,
- 2125207,
- 2125239,
- 2125245,
- 2125280,
- 2125282,
- 2125285,
- 2125295,
- 2125300,
- 2125312,
- 2125316,
- 2125371,
- 2125394,
- 2125405,
- 2125410,
- 2125416,
- 2125453,
- 2125465,
- 2125472,
- 2125485,
- 2125486,
- 2125491,
- 2125499,
- 2125504,
- 2125512,
- 2125517,
- 2125519,
- 2125549,
- 2125550,
- 2125572,
- 2125576,
- 2125581,
- 2125590,
- 2125595,
- 2125627,
- 2125613,
- 2125647,
- 2125651,
- 2125661,
- 2125676,
- 2125699,
- 2125715,
- 2125734,
- 2125744,
- 2125765,
- 2125800,
- 2125821,
- 2125847,
- 2125871,
- 2125876,
- 2125879,
- 2125892,
- 2125896,
- 2125909,
- 2125972,
- 2125974,
- 2125979,
- 2126004,
- 2126074,
- 2126085,
- 2126091,
- 2126125,
- 2126136,
- 2126145,
- 2126155,
- 4223314,
- 2126167,
- 2126170,
- 2126220,
- 2126234,
- 2126256,
- 2126271,
- 2126272,
- 2126284,
- 2126298,
- 2126328,
- 2126344,
- 2126345,
- 2126355,
- 2126362,
- 2126372,
- 2126383,
- 2126405,
- 2126414,
- 2126430,
- 2126443,
- 2126449,
- 2126459,
- 2126460,
- 2126473,
- 2126483,
- 2126504,
- 2126549,
- 2126550,
- 2126552,
- 2126559,
- 2126590,
- 2126605,
- 2126611,
- 2126642,
- 2126645,
- 2126678,
- 2126685,
- 2126686,
- 2126687,
- 2126688,
- 2126697,
- 2126713,
- 2126720,
- 2126734,
- 2126736,
- 2126739,
- 2126743,
- 2126762,
- 2126765,
- 2126790,
- 2126796,
- 2126803,
- 2126813,
- 2126822,
- 2126839,
- 2126843,
- 2126847,
- 2126848,
- 2126865,
- 2126893,
- 2126951,
- 2126952,
- 2126958,
- 2126991,
- 2126993,
- 2127002,
- 2127022,
- 2127025,
- 2127026,
- 2127052,
- 2127056,
- 2127059,
- 4224216,
- 2127067,
- 2127080,
- 2127082,
- 4224239,
- 2127100,
- 2127110,
- 2127122,
- 2127143,
- 2127145,
- 2127158,
- 2127161,
- 2127171,
- 2127175,
- 2127191,
- 2127199,
- 2127201,
- 2127227,
- 2127228,
- 2127237,
- 2127253,
- 2127260,
- 2127290,
- 2127378,
- 2127395,
- 2127401,
- 2127417,
- 2127418,
- 2127424,
- 2127428,
- 2127449,
- 2127493,
- 2127500,
- 2127501,
- 2127519,
- 2127522,
- 2127523,
- 2127553,
- 2127563,
- 4224724,
- 2127584,
- 2127606,
- 2127622,
- 2127634,
- 2127636,
- 2127637,
- 2127644,
- 2127662,
- 2127677,
- 2127682,
- 2127698,
- 2127702,
- 2127703,
- 2127728,
- 2127731,
- 2127732,
- 4224909,
- 4224930,
- 2127790,
- 2127793,
- 2127797,
- 2127811,
- 2127826,
- 2127829,
- 2127864,
- 2127886,
- 2127889,
- 2127901,
- 2127907,
- 2127940,
- 2127944,
- 2127948,
- 2127954,
- 2127966,
- 2127968,
- 2127969,
- 2127971,
- 2128015,
- 2128040,
- 2128044,
- 2128050,
- 2128061,
- 2128063,
- 2128071,
- 2128082,
- 2128086,
- 2128091,
- 2128095,
- 2128106,
- 2128115,
- 2128118,
- 2128127,
- 2128134,
- 2128154,
- 2128158,
- 2128160,
- 2128169,
- 2128173,
- 2128181,
- 2128196,
- 2128203,
- 2128207,
- 2128209,
- 2128233,
- 2128251,
- 2128254,
- 2128268,
- 2128273,
- 2128275,
- 2128284,
- 2128296,
- 2128303,
- 2128335,
- 2128349,
- 2128352,
- 2128354,
- 2128357,
- 2128369,
- 2128376,
- 2128380,
- 2128391,
- 2128417,
- 2128423,
- 2128427,
- 2128431,
- 2128436,
- 2128437,
- 2128456,
- 2128469,
- 2128485,
- 2128510,
- 2128523,
- 2128529,
- 2128542,
- 2128585,
- 2128603,
- 2128617,
- 2128620,
- 2128625,
- 2128635,
- 2128671,
- 2128675,
- 2128681,
- 2128688,
- 2128692,
- 2128703,
- 2128704,
- 2128746,
- 2128772,
- 2128777,
- 2128782,
- 2128790,
- 2128805,
- 2128818,
- 2128822,
- 2128826,
- 2128827,
- 2128829,
- 2128834,
- 2128840,
- 2128859,
- 2128884,
- 2128885,
- 2128889,
- 2128890,
- 2128898,
- 2128900,
- 2128902,
- 2128908,
- 2128921,
- 2128923,
- 2128933,
- 2128940,
- 2128948,
- 2128953,
- 2128954,
- 2128966,
- 2128981,
- 2128986,
- 2128995,
- 4226153,
- 2129020,
- 2129030,
- 2129072,
- 2129083,
- 2129103,
- 2129108,
- 2129129,
- 2129167,
- 2129169,
- 2129174,
- 2129190,
- 2129194,
- 2129197,
- 2129233,
- 2129239,
- 2129253,
- 2129255,
- 2129272,
- 2129275,
- 2129281,
- 2129302,
- 2129347,
- 2129348,
- 2129349,
- 2129350,
- 2129357,
- 2129358,
- 2129408,
- 2129378,
- 2129386,
- 2129389,
- 2129402,
- 2129436,
- 2129453,
- 2129459,
- 2129471,
- 2129486,
- 2129488,
- 2129496,
- 2129503,
- 2129509,
- 2129557,
- 2129565,
- 2129566,
- 2129727,
- 2129756,
- 2129766,
- 4226944,
- 2129805,
- 2129807,
- 2129830,
- 2129834,
- 2129844,
- 2129852,
- 2129856,
- 2129864,
- 2129896,
- 2129935,
- 2129939,
- 2129949,
- 2129951,
- 2129952,
- 2129966,
- 2129972,
- 2129982,
- 2129984,
- 2129988,
- 2130020,
- 2130029,
- 2130049,
- 2130105,
- 2130120,
- 2130125,
- 2130130,
- 2130158,
- 2130162,
- 2130166,
- 2130169,
- 2130187,
- 2130204,
- 2130208,
- 2130236,
- 2130245,
- 2130247,
- 2130258,
- 2130273,
- 2130295,
- 2130310,
- 2130318,
- 2130326,
- 2130338,
- 2130350,
- 2130373,
- 2130382,
- 2130411,
- 2130416,
- 2130417,
- 2130418,
- 2130421,
- 2130424,
- 4227584,
- 2130447,
- 2130461,
- 2130472,
- 2130499,
- 2130510,
- 2130513,
- 2130518,
- 2130535,
- 2130555,
- 2130560,
- 2130561,
- 2130567,
- 2130580,
- 2130582,
- 2130584,
- 2130586,
- 2130587,
- 2130592,
- 2130650,
- 2130656,
- 2130660,
- 2130669,
- 2130698,
- 2130699,
- 2130718,
- 2130719,
- 2130721,
- 2130732,
- 2130734,
- 2130739,
- 2130743,
- 2130749,
- 2130754,
- 2130765,
- 2130766,
- 2130800,
- 2130816,
- 2130818,
- 2130820,
- 2130841,
- 2130844,
- 2130854,
- 2130860,
- 2130878,
- 2130771,
- 2130920,
- 2130969,
- 2130861,
- 2130991,
- 2131013,
- 2131015,
- 2131021,
- 2131030,
- 4228188,
- 2131040,
- 2131044,
- 2131047,
- 2131050,
- 2131060,
- 2131069,
- 2131090,
- 2131093,
- 2131113,
- 2131114,
- 2131143,
- 2131144,
- 2131148,
- 2131186,
- 2131191,
- 2131202,
- 2131203,
- 2131207,
- 2131214,
- 2131216,
- 2131228,
- 2131234,
- 2131239,
- 2131242,
- 2131251,
- 2131254,
- 2131263,
- 2131280,
- 2131282,
- 2131292,
- 4228445,
- 2131295,
- 2131296,
- 2131321,
- 2131337,
- 2131339,
- 2131360,
- 2131365,
- 2131367,
- 2131380,
- 2131382,
- 2131384,
- 2131389,
- 2131390,
- 2131391,
- 2131394,
- 2131418,
- 2131424,
- 2131432,
- 2131443,
- 2131452,
- 2131469,
- 2131470,
- 2131481,
- 2131483,
- 2131510,
- 2131514,
- 2131517,
- 2131544,
- 2131545,
- 2131549,
- 2131552,
- 2131553,
- 2131556,
- 2131561,
- 2131574,
- 2131606,
- 2131610,
- 2131617,
- 2131622,
- 2131629,
- 2131636,
- 2131637,
- 2131639,
- 2131641,
- 2131647,
- 2131653,
- 2131666,
- 2131674,
- 2131676,
- 2131680,
- 2131685,
- 2131687,
- 2131592,
- 2131716,
- 2131727,
- 2131759,
- 2131762,
- 2131772,
- 2131773,
- 2131781,
- 2131789,
- 2131809,
- 2131823,
- 2131843,
- 2131844,
- 2131845,
- 2131846,
- 2131856,
- 2131861,
- 4229027,
- 2131889,
- 2131912,
- 2131914,
- 2131925,
- 2131929,
- 2131932,
- 2131938,
- 2131940,
- 2131953,
- 2131955,
- 2131960,
- 2131962,
- 2131967,
- 2131977,
- 2131993,
- 2131986,
- 2131994,
- 2131998,
- 2132016,
- 2132021,
- 2132033,
- 2132035,
- 2132040,
- 2132041,
- 4229195,
- 2132049,
- 2132060,
- 2132064,
- 2132081,
- 2132089,
- 2132091,
- 2132096,
- 2132127,
- 2132136,
- 2132154,
- 2132171,
- 2132172,
- 2132190,
- 2132199,
- 2132215,
- 2132237,
- 2132245,
- 2132246,
- 2132256,
- 2132264,
- 2132273,
- 2132282,
- 2132294,
- 2132303,
- 2132306,
- 2132311,
- 2132315,
- 2132321,
- 2132323,
- 2132334,
- 2132339,
- 2132341,
- 2132346,
- 2132349,
- 2132365,
- 2132373,
- 2132379,
- 2132380,
- 2132384,
- 2132404,
- 2132406,
- 2132439,
- 2132457,
- 2132461,
- 2132473,
- 2132484,
- 2132485,
- 2132510,
- 2132512,
- 2132516,
- 2132518,
- 2132523,
- 2132524,
- 2132527,
- 2132541,
- 2132544,
- 2132547,
- 2132563,
- 2132566,
- 2132572,
- 2132581,
- 2132598,
- 2132599,
- 2132602,
- 2132603,
- 2132608,
- 2132611,
- 2132619,
- 2132623,
- 2132626,
- 2132631,
- 2132633,
- 2132639,
- 2132649,
- 2132655,
- 2132659,
- 2132667,
- 2132675,
- 2132678,
- 2132680,
- 2132682,
- 2132691,
- 2132692,
- 2132693,
- 2132720,
- 2132735,
- 2132747,
- 2132766,
- 2132784,
- 2132796,
- 2132802,
- 2132808,
- 2132813,
- 2132835,
- 2132857,
- 2132868,
- 2132877,
- 2132879,
- 2133048,
- 2133054,
- 2133073,
- 2133080,
- 2133083,
- 2133085,
- 2133081,
- 2133091,
- 2133092,
- 2133094,
- 2133109,
- 2133110,
- 2133118,
- 2133126,
- 2133127,
- 2133131,
- 2133136,
- 4230299,
- 2133148,
- 2133177,
- 2133190,
- 2133195,
- 2133199,
- 2133213,
- 2133224,
- 2133231,
- 2133234,
- 2133247,
- 2133349,
- 2133375,
- 2133378,
- 2133384,
- 2133392,
- 2133406,
- 2133408,
- 2133420,
- 2133429,
- 2133431,
- 2133433,
- 2133435,
- 2133440,
- 2133445,
- 2133447,
- 2133450,
- 2133460,
- 2133477,
- 2133488,
- 2133436,
- 2133508,
- 2133509,
- 2133521,
- 2133555,
- 2133559,
- 2133560,
- 2133582,
- 2133595,
- 2133597,
- 2133598,
- 2133625,
- 2133634,
- 2133635,
- 2133659,
- 2133661,
- 2133666,
- 2133690,
- 2133697,
- 2133699,
- 2133700,
- 2133703,
- 2133724,
- 2133742,
- 2133745,
- 2133751,
- 2133741,
- 2133762,
- 2133775,
- 2133776,
- 2133782,
- 2133792,
- 2133793,
- 2133795,
- 2133800,
- 2133806,
- 2133812,
- 2133815,
- 2133825,
- 2133839,
- 2133842,
- 2133843,
- 2133853,
- 2133854,
- 2133861,
- 2133917,
- 2133944,
- 2133950,
- 2133952,
- 2133963,
- 2133968,
- 2133970,
- 2133987,
- 2134014,
- 2134040,
- 2134056,
- 2134057,
- 2134058,
- 2134067,
- 2134068,
- 2134079,
- 2134114,
- 2134118,
- 2134124,
- 2134158,
- 2134181,
- 2134220,
- 2134229,
- 2134232,
- 2134233,
- 2134245,
- 2134226,
- 2134280,
- 2134285,
- 2134288,
- 2134298,
- 2134304,
- 2134313,
- 2134318,
- 2134326,
- 2134332,
- 2134339,
- 2134351,
- 2134355,
- 2134381,
- 2134395,
- 2134401,
- 2134406,
- 2134419,
- 2134420,
- 2134424,
- 2134433,
- 2134438,
- 2134463,
- 2134483,
- 2134484,
- 2134489,
- 2134505,
- 2134506,
- 2134511,
- 2134521,
- 2134525,
- 2134532,
- 2134533,
- 2134540,
- 2134546,
- 2134547,
- 2134552,
- 2134556,
- 2134557,
- 2134564,
- 2134565,
- 2134566,
- 2134574,
- 2134575,
- 2134576,
- 2134581,
- 2134582,
- 2134590,
- 2134598,
- 2134605,
- 2134616,
- 2134620,
- 2134621,
- 2134633,
- 2134638,
- 2134639,
- 2134640,
- 2134645,
- 2134649,
- 2134651,
- 2134666,
- 2134674,
- 2134688,
- 2134692,
- 2134693,
- 2134696,
- 2134710,
- 2134712,
- 2134714,
- 2134717,
- 2134727,
- 2134733,
- 2134744,
- 2134748,
- 2134749,
- 2134753,
- 2134755,
- 2134760,
- 2134764,
- 2134766,
- 2134768,
- 2134784,
- 2134792,
- 2134812,
- 2134820,
- 2134826,
- 2134836,
- 2134839,
- 2134864,
- 2134869,
- 2134878,
- 2134887,
- 2134889,
- 2134895,
- 2134900,
- 2134902,
- 2134906,
- 2134909,
- 2134912,
- 2134913,
- 2134925,
- 2134930,
- 2134933,
- 2134936,
- 4232097,
- 2134950,
- 2134952,
- 2134955,
- 2134964,
- 2134965,
- 2134966,
- 2134980,
- 2134981,
- 2134985,
- 2134987,
- 2134989,
- 2134995,
- 2135001,
- 2135031,
- 2135041,
- 2135048,
- 2135061,
- 2135071,
- 2135087,
- 2135101,
- 2135107,
- 2135129,
- 2135132,
- 2135135,
- 2135137,
- 2135144,
- 2135150,
- 2135172,
- 2135171,
- 2135422,
- 2135428,
- 2135453,
- 2135454,
- 2135482,
- 2135513,
- 2135517,
- 2135519,
- 2135582,
- 2135586,
- 2135589,
- 2135590,
- 2135607,
- 2135609,
- 2135610,
- 2135634,
- 2135638,
- 2135639,
- 2135662,
- 2135676,
- 2135678,
- 2135697,
- 2135711,
- 2135718,
- 2135754,
- 4232922,
- 2135775,
- 2135802,
- 2135813,
- 2135834,
- 2135837,
- 4232993,
- 2135882,
- 2135896,
- 2135927,
- 2135928,
- 2135931,
- 2135936,
- 2135945,
- 2135959,
- 2135992,
- 2135996,
- 2135999,
- 2136004,
- 2136005,
- 2136007,
- 2136010,
- 2136014,
- 2136016,
- 2136023,
- 2136029,
- 2136036,
- 2136055,
- 2136056,
- 2136058,
- 2136089,
- 2136092,
- 2136096,
- 2136111,
- 2136117,
- 2136132,
- 2136138,
- 2136145,
- 2136170,
- 2136238,
- 2136268,
- 2136294,
- 2136310,
- 2136327,
- 2136351,
- 2136354,
- 2136358,
- 2136363,
- 2136372,
- 2136377,
- 2136391,
- 2136409,
- 2136411,
- 2136475,
- 2136477,
- 2136479,
- 2136496,
- 2136498,
- 2136501,
- 2136531,
- 2136538,
- 2136540,
- 2136551,
- 2136554,
- 2136555,
- 2136556,
- 2136564,
- 2136565,
- 2136573,
- 2136574,
- 2136580,
- 2136587,
- 2136606,
- 2136610,
- 2136627,
- 2136629,
- 2136647,
- 4233802,
- 2136651,
- 2136660,
- 2136669,
- 2136746,
- 2136748,
- 2136750,
- 2136754,
- 2136756,
- 2136763,
- 2136767,
- 2136776,
- 2136791,
- 2136795,
- 2136804,
- 2136807,
- 2136812,
- 2136818,
- 2136819,
- 2136821,
- 2136826,
- 2136829,
- 2136831,
- 2136832,
- 2136836,
- 2136837,
- 2136859,
- 2136870,
- 4234037,
- 2136887,
- 2136889,
- 2136890,
- 2136908,
- 2136918,
- 2136919,
- 2136923,
- 2136929,
- 2136938,
- 2136941,
- 2136942,
- 2136952,
- 2136959,
- 2136965,
- 2136967,
- 2136969,
- 2136971,
- 2136973,
- 2136980,
- 2136986,
- 2137001,
- 2137015,
- 2137020,
- 2137040,
- 2137081,
- 2137103,
- 2137105,
- 2137118,
- 2137126,
- 2137128,
- 2137149,
- 2137155,
- 2137166,
- 2137182,
- 2137211,
- 2137335,
- 2137337,
- 2137372,
- 2137391,
- 2137395,
- 2137396,
- 2137402,
- 2137404,
- 2137413,
- 2137427,
- 2137428,
- 2137445,
- 2137475,
- 2137478,
- 2137486,
- 2137490,
- 2137491,
- 2137493,
- 2137495,
- 2137496,
- 2137514,
- 2137518,
- 4234687,
- 2137546,
- 2137556,
- 2137557,
- 2137566,
- 2137582,
- 2137584,
- 2137598,
- 2137614,
- 2137616,
- 2137617,
- 2137618,
- 2137622,
- 2137735,
- 2137742,
- 2137743,
- 2137750,
- 2137752,
- 2137774,
- 2137779,
- 2137798,
- 2137800,
- 2137803,
- 2137813,
- 2137836,
- 2137837,
- 2137841,
- 2137845,
- 2137848,
- 2137873,
- 2137878,
- 2137882,
- 2137887,
- 2137905,
- 2137906,
- 2137916,
- 2137919,
- 2137923,
- 2137924,
- 2137927,
- 2137942,
- 2137950,
- 2137966,
- 2137971,
- 2137978,
- 2137981,
- 2137999,
- 2138001,
- 2138002,
- 2138006,
- 2138017,
- 2138019,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,0x204edd,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,0x204e9c,0x205516,0x205a03,0x20963f,0x2054c0,0x20611b,
+ 0x206328,0x2059f6,0x209022,0x208475,0x20831c,0x207a50,0x2060aa,0x2063e1,0x206e25,0x2065ed,
+ 0x208466,0x2082a6,0x209bf5,0x206893,0x205727,0x2065a1,0x206271,0x205b9b,0x2059d0,0x20867b,
+ 0x2098f4,0x207d62,0x207dbe,0x209b8e,0x206216,0x207c9f,0x2088b7,0x205b89,0x205eb5,0x206309,
+ 0x206697,0x206848,0x2095c7,0x20978d,0x20674f,0x204ee5,0x204f0a,0x204f4d,0x204f9d,0x205049,
+ 0x2056f2,0x205937,0x2059d4,0x205a01,0x205c09,0x2060df,0x20610f,0x206170,0x206613,0x206905,
+ 0x2070ba,0x20754f,0x207570,0x2079fb,0x207dad,0x207def,0x2080c3,0x20840e,0x208863,0x208b02,
+ 0x209055,0x20907a,0x20533b,0x204e95,0x204ea5,0x2057df,0x2080b2,0x2090c1,0x2078ef,0x204e00,
+ 0x2058f1,0x206ea2,0x209038,0x207a32,0x208328,0x20828b,0x209c2f,0x205141,0x205370,0x2054bd,
+ 0x2054e1,0x2056e0,0x2059fb,0x205f15,0x2098f2,0x206deb,0x2080e4,0x20852d,0x209662,0x209670,
+ 0x2096a0,0x2097fb,0x20540b,0x2053f3,0x205b87,0x2070cf,0x407fbd,0x208fc2,0x2096e8,0x20536f,
+ 0x209d5c,0x207aba,0x204e11,0x207893,0x2081fc,0x206e26,0x205618,0x205504,0x206b1d,0x20851a,
+ 0x209c3b,0x2059e5,0x2053a9,0x206d66,0x2074dc,0x20958f,0x205642,0x204e91,0x20904b,0x2096f2,
+ 0x20834f,0x20990c,0x2053e1,0x2055b6,0x205b30,0x205f71,0x206620,0x2066f3,0x206804,0x206c38,
+ 0x206cf3,0x206d29,0x20745b,0x2076c8,0x207a4e,0x209834,0x2082f1,0x20885b,0x208a60,0x2092ed,
+ 0x206db2,0x2075ab,0x2076ca,0x2099c5,0x2060a6,0x408b01,0x208d8a,0x2095b2,0x20698e,0x2053ad,
+ 0x205186,0x205712,0x205830,0x205944,0x205bb4,0x205ef6,0x206028,0x2063a9,0x2063f4,0x406cbf,
+ 0x206f14,0x20708e,0x207114,0x207159,0x2071d5,0x20733f,0x207e01,0x208276,0x2082d1,0x208597,
+ 0x209060,0x20925b,0x209d1b,0x205869,0x2065bc,0x206c5a,0x207525,0x2051f9,0x20592e,0x205965,
+ 0x205f80,0x205fdc,0x2062bc,0x2065fa,0x206a2a,0x206b27,0x206bb4,0x20738b,0x207fc1,0x208956,
+ 0x209d2c,0x209d0e,0x209ec4,0x205ca1,0x206c96,0x20837b,0x205104,0x205c4b,0x2061b6,0x2081c6,
+ 0x206876,0x207261,0x204e59,0x204ffa,0x205378,0x206069,0x206e29,0x207a4f,0x2097f3,0x204e0b,
+ 0x205316,0x204eee,0x204f55,0x204f3d,0x204fa1,0x204f73,0x2052a0,0x2053ef,0x205609,0x20590f,
+ 0x205ac1,0x205bb6,0x205be1,0x2079d1,0x206687,0x20679c,0x2067b6,0x206b4c,0x206cb3,0x20706b,
+ 0x2073c2,0x40798d,0x2079be,0x207a3c,0x207b87,0x2082b1,0x2082db,0x208304,0x208377,0x2083ef,
+ 0x2083d3,0x208766,0x208ab2,0x205629,0x208ca8,0x208fe6,0x20904e,0x20971e,0x20868a,0x204fc4,
+ 0x205ce8,0x206211,0x207259,0x20753b,0x2081e5,0x4082bd,0x2086fe,0x208cc0,0x2096c5,0x209913,
+ 0x2099d5,0x204ecb,0x204f1a,0x2089e3,0x2056de,0x20584a,0x2058ca,0x205efb,0x205feb,0x20602a,
+ 0x406094,0x206062,0x2061d0,0x206212,0x2062d0,0x206539,0x209b41,0x206666,0x2068b0,0x406d77,
+ 0x207070,0x20754c,0x207686,0x207d75,0x2082a5,0x2087f9,0x20958b,0x20968e,0x208c9d,0x2051f1,
+ 0x2052be,0x205916,0x2054b3,0x205bb3,0x205d16,0x206168,0x206982,0x206daf,0x20788d,0x2084cb,
+ 0x208857,0x208a72,0x2093a7,0x209ab8,0x206d6c,0x2099a8,0x2086d9,0x2057a3,0x2067ff,0x2086ce,
+ 0x20920e,0x205283,0x205687,0x205404,0x205ed3,0x2062e1,0x2064b9,0x20683c,0x206838,0x206bbb,
+ 0x207372,0x2078ba,0x207a6b,0x20899a,0x4089d2,0x208d6b,0x208f03,0x2090ed,0x2095a3,0x209694,
+ 0x209769,0x205b66,0x205cb3,0x20697d,0x20984d,0x20984e,0x20639b,0x207b20,0x206a2b,0x206a7f,
+ 0x2068b6,0x209c0d,0x206f5f,0x405272,0x20559d,0x206070,0x2062ec,0x206d3b,0x206e07,0x206ed1,
+ 0x20845b,0x208910,0x208f44,0x204e14,0x209c39,0x2053f6,0x20691b,0x206a3a,0x209784,0x20682a,
+ 0x20515c,0x207ac3,0x2084b2,0x2091dc,0x20938c,0x20565b,0x209d28,0x206822,0x208305,0x208431,
+ 0x207ca5,0x205208,0x2082c5,0x2074e6,0x204e7e,0x204f83,0x2051a0,0x205bd2,0x20520a,0x2052d8,
+ 0x2052e7,0x205dfb,0x20559a,0x20582a,0x2059e6,0x205b8c,0x205b98,0x205bdb,0x205e72,0x205e79,
+ 0x2060a3,0x20611f,0x206163,0x2061be,0x2063db,0x206562,0x2067d1,0x206853,0x2068fa,0x206b3e,
+ 0x206b53,0x206c57,0x206f22,0x206f97,0x206f45,0x2074b0,0x207518,0x2076e3,0x20770b,0x207aff,
+ 0x207ba1,0x207c21,0x207de9,0x207f36,0x207ff0,0x20809d,0x208266,0x20839e,0x2089b3,0x208acc,
+ 0x208cab,0x209084,0x209451,0x209593,0x209591,0x2095a2,0x209665,0x2097d3,0x209928,0x208218,
+ 0x204e38,0x20542b,0x205cb8,0x205dcc,0x2073a9,0x20764c,0x20773c,0x205ca9,0x207feb,0x208d0b,
+ 0x2096c1,0x209811,0x209854,0x209858,0x204f01,0x204f0e,0x205371,0x20559c,0x205668,0x2057fa,
+ 0x205947,0x205b09,0x205bc4,0x205c90,0x205e0c,0x205e7e,0x205fcc,0x2063ee,0x20673a,0x2065d7,
+ 0x4065e2,0x20671f,0x2068cb,0x2068c4,0x206a5f,0x205e30,0x206bc5,0x206c17,0x206c7d,0x20757f,
+ 0x407948,0x205b63,0x207a00,0x207d00,0x205fbd,0x20898f,0x208a18,0x208cb4,0x208d77,0x208ecc,
+ 0x208f1d,0x2098e2,0x209a0e,0x209b3c,0x204e80,0x20507d,0x205100,0x205993,0x205b9c,0x20622f,
+ 0x206280,0x2064ec,0x206b3a,0x2072a0,0x207591,0x207947,0x207fa9,0x2087fb,0x208abc,0x208b70,
+ 0x2063ac,0x2083ca,0x2097a0,0x205409,0x205403,0x2055ab,0x206854,0x206a58,0x208a70,0x207827,
+ 0x206775,0x209ecd,0x205374,0x205ba2,0x20811a,0x208650,0x209006,0x204e18,0x204e45,0x204ec7,
+ 0x204f11,0x2053ca,0x205438,0x205bae,0x205f13,0x206025,0x206551,0x20673d,0x206c42,0x206c72,
+ 0x206ce3,0x207078,0x207403,0x207a76,0x207aae,0x207b08,0x207d1a,0x207cfe,0x207d66,0x2065e7,
+ 0x20725b,0x2053bb,0x205c45,0x205de8,0x2062d2,0x2062e0,0x206319,0x206e20,0x20865a,0x208a31,
+ 0x208ddd,0x2092f8,0x206f01,0x2079a6,0x209b5a,0x204ea8,0x204eab,0x204eac,0x204f9b,0x204fa0,
+ 0x2050d1,0x205147,0x207af6,0x205171,0x2051f6,0x205354,0x205321,0x40537f,0x2053eb,0x2055ac,
+ 0x205883,0x205ce1,0x205f37,0x205f4a,0x20602f,0x206050,0x20606d,0x20631f,0x206559,0x206a4b,
+ 0x206cc1,0x2072c2,0x2072ed,0x2077ef,0x2080f8,0x208105,0x208208,0x20854e,0x2090f7,0x2093e1,
+ 0x2097ff,0x209957,0x209a5a,0x204ef0,0x2051dd,0x205c2d,0x206681,0x20696d,0x205c40,0x2066f2,
+ 0x206975,0x207389,0x206850,0x207c81,0x2050c5,0x2052e4,0x205747,0x205dfe,0x209326,0x2065a4,
+ 0x206b23,0x206b3d,0x207434,0x207981,0x2079bd,0x207b4b,0x207dca,0x2082b9,0x2083cc,0x20887f,
+ 0x20895f,0x408b39,0x208fd1,0x2091d1,0x20541f,0x209280,0x204e5d,0x205036,0x2053e5,0x20533a,
+ 0x2072d7,0x207396,0x2077e9,0x2082e6,0x208eaf,0x2099c6,0x2099c8,0x2099d2,0x205177,0x20611a,
+ 0x20865e,0x2055b0,0x207a7a,0x205076,0x205bd3,0x209047,0x209685,0x204e32,0x406adb,0x2091e7,
+ 0x205c51,0x205c48,0x206398,0x207a9f,0x206c93,0x209774,0x208f61,0x207aaa,0x20718a,0x209688,
+ 0x207c82,0x206817,0x207e70,0x206851,0x20936c,0x2052f2,0x20541b,0x2085ab,0x208a13,0x207fa4,
+ 0x208ecd,0x2090e1,0x205366,0x208888,0x207941,0x204fc2,0x2050be,0x205211,0x205144,0x205553,
+ 0x20572d,0x2073ea,0x20578b,0x205951,0x205f62,0x205f84,0x206075,0x206176,0x206167,0x2061a9,
+ 0x2063b2,0x20643a,0x20656c,0x20666f,0x206842,0x206e13,0x207566,0x207a3d,0x207cfb,0x207d4c,
+ 0x207d99,0x207e4b,0x207f6b,0x20830e,0x20834a,0x2086cd,0x208a08,0x208a63,0x208b66,0x208efd,
+ 0x20981a,0x209d8f,0x2082b8,0x208fce,0x209be8,0x205287,0x20621f,0x206483,0x206fc0,0x209699,
+ 0x206841,0x205091,0x206b20,0x206c7a,0x206f54,0x207a74,0x207d50,0x208840,0x208a23,0x206708,
+ 0x204ef6,0x205039,0x205026,0x205065,0x20517c,0x205238,0x205263,0x2055a7,0x20570f,0x205805,
+ 0x205acc,0x205efa,0x2061b2,0x2061f8,0x2062f3,0x206372,0x20691c,0x206a29,0x20727d,0x2072ac,
+ 0x20732e,0x207814,0x20786f,0x207d79,0x20770c,0x2080a9,0x20898b,0x208b19,0x208ce2,0x208ed2,
+ 0x209063,0x209375,0x20967a,0x209855,0x209a13,0x209e78,0x205143,0x20539f,0x2053b3,0x205e7b,
+ 0x205f26,0x206e1b,0x206e90,0x207384,0x2073fe,0x207d43,0x208237,0x208a00,0x208afa,0x209650,
+ 0x204e4e,0x20500b,0x2053e4,0x20547c,0x2056fa,0x2059d1,0x205b64,0x205df1,0x205eab,0x205f27,
+ 0x206238,0x206545,0x2067af,0x206e56,0x2072d0,0x207cca,0x2088b4,0x2080a1,0x2080e1,0x2083f0,
+ 0x20864e,0x208a87,0x208de8,0x209237,0x2096c7,0x209867,0x209f13,0x204e94,0x204e92,0x204f0d,
+ 0x205348,0x205449,0x20543e,0x205a2f,0x205f8c,0x205fa1,0x20609f,0x2068a7,0x206a8e,0x20745a,
+ 0x207881,0x208a9e,0x208aa4,0x208b77,0x209190,0x204e5e,0x209bc9,0x204ea4,0x204f7c,0x204faf,
+ 0x205019,0x205016,0x205149,0x20516c,0x20529f,0x2052b9,0x2052fe,0x20539a,0x2053e3,0x205411,
+ 0x20540e,0x205589,0x205751,0x2057a2,0x20597d,0x205b54,0x205b5d,0x205b8f,0x205de5,0x205de7,
+ 0x205df7,0x205e78,0x205e83,0x205e9a,0x205eb7,0x205f18,0x206052,0x20614c,0x206297,0x2062d8,
+ 0x2063a7,0x20653b,0x206602,0x206643,0x2066f4,0x20676d,0x206821,0x206897,0x2069cb,0x206c5f,
+ 0x206d2a,0x206d69,0x206e2f,0x206e9d,0x207532,0x207687,0x20786c,0x207a3f,0x207ce0,0x207d05,
+ 0x207d18,0x207d5e,0x207db1,0x208015,0x208003,0x2080af,0x2080b1,0x208154,0x20818f,0x20822a,
+ 0x208352,0x20884c,0x208861,0x208b1b,0x208ca2,0x208cfc,0x2090ca,0x209175,0x209271,0x20783f,
+ 0x2092fc,0x2095a4,0x20964d,0x209805,0x209999,0x209ad8,0x209d3b,0x20525b,0x2052ab,0x2053f7,
+ 0x205408,0x2058d5,0x2062f7,0x206fe0,0x208c6a,0x208f5f,0x209eb9,0x20514b,0x20523b,0x20544a,
+ 0x2056fd,0x407a40,0x209177,0x209d60,0x209ed2,0x207344,0x206f09,0x208170,0x207511,0x205ffd,
+ 0x2060da,0x209aa8,0x2072db,0x208fbc,0x206b64,0x209803,0x204eca,0x2056f0,0x205764,0x2058be,
+ 0x205a5a,0x206068,0x2061c7,0x20660f,0x206606,0x206839,0x2068b1,0x206df7,0x2075d5,0x207d3a,
+ 0x20826e,0x209b42,0x204e9b,0x204f50,0x2053c9,0x205506,0x205d6f,0x205de6,0x205dee,0x2067fb,
+ 0x206c99,0x207473,0x207802,0x208a50,0x209396,0x2088df,0x205750,0x205ea7,0x20632b,0x2050b5,
+ 0x2050ac,0x40518d,0x206700,0x2054c9,0x20585e,0x2059bb,0x205bb0,0x205f69,0x20624d,0x2063a1,
+ 0x20683d,0x206b73,0x206e08,0x20707d,0x2091c7,0x207280,0x207815,0x207826,0x20796d,0x20658e,
+ 0x207d30,0x2083dc,0x2088c1,0x208f09,0x20969b,0x205264,0x205728,0x206750,0x207f6a,0x208ca1,
+ 0x2051b4,0x205742,0x20962a,0x20583a,0x20698a,0x2080b4,0x2054b2,0x205d0e,0x2057fc,0x207895,
+ 0x209dfa,0x204f5c,0x20524a,0x20548b,0x20643e,0x206628,0x206714,0x2067f5,0x207a84,0x207b56,
+ 0x207d22,0x20932f,0x20685c,0x209bad,0x207b39,0x205319,0x20518a,0x205237,0x205bdf,0x2062f6,
+ 0x2064ae,0x2064e6,0x20672d,0x406bba,0x2085a9,0x2096d1,0x207690,0x209bd6,0x20634c,0x209306,
+ 0x209bab,0x2076bf,0x206652,0x204e09,0x205098,0x2053c2,0x205c71,0x2060e8,0x206492,0x206563,
+ 0x20685f,0x2071e6,0x2073ca,0x207523,0x207b97,0x207e82,0x208695,0x208b83,0x208cdb,0x209178,
+ 0x209910,0x2065ac,0x2066ab,0x206b8b,0x204ed5,0x204ed4,0x204f3a,0x204f7f,0x20523a,0x2053f8,
+ 0x2053f2,0x2055e3,0x2056db,0x2058eb,0x2059cb,0x2059c9,0x2059ff,0x205b50,0x205c4d,0x205e02,
+ 0x205e2b,0x205fd7,0x20601d,0x206307,0x20652f,0x205b5c,0x2065af,0x2065bd,0x2065e8,0x20679d,
+ 0x206b62,0x206b7b,0x206c0f,0x207345,0x207949,0x2079c1,0x207cf8,0x207d19,0x207d2b,0x2080a2,
+ 0x208102,0x2081f3,0x208996,0x208a5e,0x208a69,0x208a66,0x208a8c,0x208aee,0x208cc7,0x208cdc,
+ 0x2096cc,0x2098fc,0x206b6f,0x204e8b,0x204f3c,0x204f8d,0x205150,0x205b57,0x205bfa,0x206148,
+ 0x206301,0x206642,0x206b21,0x206ecb,0x206cbb,0x20723e,0x2074bd,0x2075d4,0x2078c1,0x40793a,
+ 0x20800c,0x208033,0x2081ea,0x208494,0x208f9e,0x206c50,0x209e7f,0x205f0f,0x208b58,0x209d2b,
+ 0x207afa,0x208ef8,0x205b8d,0x2096eb,0x204e03,0x2053f1,0x2057f7,0x205931,0x205ac9,0x205ba4,
+ 0x206089,0x206e7f,0x206f06,0x2075be,0x208cea,0x205b9f,0x208500,0x207be0,0x205072,0x2067f4,
+ 0x20829d,0x205c61,0x20854a,0x207e1e,0x20820e,0x205199,0x205c04,0x206368,0x208d66,0x20659c,
+ 0x40716e,0x20793e,0x207d17,0x208005,0x208b1d,0x208eca,0x20906e,0x2086c7,0x2090aa,0x20501f,
+ 0x4052fa,0x205c3a,0x206753,0x20707c,0x407235,0x20914c,0x2091c8,0x20932b,0x2082e5,0x205bc2,
+ 0x205f31,0x2060f9,0x204e3b,0x2053d6,0x205b88,0x20624b,0x206731,0x206b8a,0x2072e9,0x2073e0,
+ 0x207a2e,0x20816b,0x208da3,0x209152,0x209996,0x205112,0x2053d7,0x20546a,0x205bff,0x206388,
+ 0x206a39,0x207dac,0x209700,0x2056da,0x2053ce,0x405468,0x205b97,0x205c31,0x205dde,0x204fee,
+ 0x206101,0x2062fe,0x206d32,0x2079c0,0x2079cb,0x207d42,0x207e4d,0x207fd2,0x2081ed,0x20821f,
+ 0x208490,0x208846,0x208972,0x208b90,0x208e74,0x208f2f,0x209031,0x20914b,0x20916c,0x2096c6,
+ 0x20919c,0x204ec0,0x204f4f,0x205145,0x205341,0x205f93,0x20620e,0x2067d4,0x206c41,0x206e0b,
+ 0x207363,0x207e26,0x2091cd,0x209283,0x2053d4,0x205919,0x205bbf,0x206dd1,0x40795d,0x207e2e,
+ 0x207c9b,0x20587e,0x20719f,0x2051fa,0x208853,0x208ff0,0x204fca,0x205cfb,0x206625,0x2077ac,
+ 0x207ae3,0x20821c,0x2099ff,0x2051c6,0x205faa,0x2065ec,0x20696f,0x206b89,0x206df3,0x206e96,
+ 0x206f64,0x2076fe,0x207d14,0x205de1,0x209075,0x209187,0x209806,0x2051e6,0x20521d,0x206240,
+ 0x206691,0x2066d9,0x406e1a,0x205eb6,0x207dd2,0x407f72,0x2066f8,0x2085af,0x2085f7,0x408af8,
+ 0x2052a9,0x2053d9,0x205973,0x205e8f,0x205f90,0x206055,0x2092e4,0x209664,0x2050b7,0x20511f,
+ 0x2052dd,0x205320,0x205347,0x2053ec,0x2054e8,0x205546,0x205531,0x205617,0x205968,0x2059be,
+ 0x205a3c,0x205bb5,0x405c06,0x205c0f,0x205c11,0x205c1a,0x205e84,0x205e8a,0x205ee0,0x205f70,
+ 0x20627f,0x206284,0x2062db,0x20638c,0x206377,0x206607,0x20660c,0x20662d,0x206676,0x20677e,
+ 0x2068a2,0x206a1f,0x206a35,0x206cbc,0x206d88,0x206e09,0x206e58,0x20713c,0x207126,0x207167,
+ 0x2075c7,0x207701,0x20785d,0x207901,0x407965,0x2079f0,0x207ae0,0x207b11,0x207ca7,0x207d39,
+ 0x208096,0x2083d6,0x20848b,0x208549,0x20885d,0x2088f3,0x208a1f,0x208a3c,0x208a54,0x208a73,
+ 0x208c61,0x208cde,0x2091a4,0x209266,0x20937e,0x209418,0x20969c,0x209798,0x204e0a,0x204e08,
+ 0x204e1e,0x204e57,0x205197,0x205270,0x4057ce,0x205834,0x2058cc,0x205b22,0x205e38,0x2060c5,
+ 0x2064fe,0x206761,0x206756,0x206d44,0x2072b6,0x207573,0x207a63,0x2084b8,0x208b72,0x2091b8,
+ 0x209320,0x205631,0x2057f4,0x2098fe,0x2062ed,0x20690d,0x206b96,0x2071ed,0x207e54,0x208077,
+ 0x208272,0x2089e6,0x2098df,0x208755,0x208fb1,0x205c3b,0x204f38,0x204fe1,0x204fb5,0x205507,
+ 0x205a20,0x205bdd,0x205be9,0x205fc3,0x20614e,0x20632f,0x2065b0,0x20664b,0x2068ee,0x20699b,
+ 0x206d78,0x206df1,0x207533,0x2075b9,0x20771f,0x40795e,0x2079e6,0x207d33,0x2081e3,0x2082af,
+ 0x2085aa,0x2089aa,0x208a3a,0x208eab,0x208f9b,0x209032,0x2091dd,0x209707,0x204eba,0x204ec1,
+ 0x205203,0x205875,0x2058ec,0x205c0b,0x20751a,0x205c3d,0x20814e,0x208a0a,0x208fc5,0x209663,
+ 0x20976d,0x207b25,0x208acf,0x209808,0x209162,0x2056f3,0x2053a8,0x209017,0x205439,0x205782,
+ 0x205e25,0x2063a8,0x206c34,0x20708a,0x207761,0x207c8b,0x207fe0,0x208870,0x209042,0x209154,
+ 0x209310,0x209318,0x20968f,0x20745e,0x209ac4,0x205d07,0x205d69,0x206570,0x2067a2,0x208da8,
+ 0x2096db,0x20636e,0x206749,0x206919,0x2083c5,0x209817,0x2096c0,0x2088fe,0x206f84,0x20647a,
+ 0x205bf8,0x204e16,0x20702c,0x20755d,0x20662f,0x2051c4,0x205236,0x2052e2,0x2059d3,0x205f81,
+ 0x206027,0x206210,0x20653f,0x206574,0x20661f,0x406674,0x2068f2,0x206816,0x206b63,0x206e05,
+ 0x207272,0x20751f,0x2076db,0x407cbe,0x208056,0x2058f0,0x2088fd,0x20897f,0x208aa0,0x208a93,
+ 0x208acb,0x20901d,0x209192,0x209752,0x209759,0x206589,0x207a0e,0x208106,0x2096bb,0x205e2d,
+ 0x2060dc,0x20621a,0x2065a5,0x206614,0x206790,0x2077f3,0x207a4d,0x207c4d,0x207e3e,0x20810a,
+ 0x208cac,0x208d64,0x208de1,0x208e5f,0x2078a9,0x205207,0x2062d9,0x2063a5,0x206442,0x206298,
+ 0x208a2d,0x207a83,0x207bc0,0x208aac,0x2096ea,0x207d76,0x20820c,0x208749,0x204ed9,0x205148,
+ 0x205343,0x205360,0x205ba3,0x205c02,0x205c16,0x205ddd,0x206226,0x206247,0x2064b0,0x206813,
+ 0x206834,0x206cc9,0x206d45,0x206d17,0x2067d3,0x206f5c,0x20714e,0x20717d,0x2065cb,0x207a7f,
+ 0x207bad,0x207dda,0x207e4a,0x207fa8,0x20817a,0x20821b,0x208239,0x2085a6,0x208a6e,0x208cce,
+ 0x208df5,0x209078,0x209077,0x2092ad,0x209291,0x209583,0x209bae,0x20524d,0x205584,0x206f38,
+ 0x207136,0x205168,0x207985,0x207e55,0x2081b3,0x207cce,0x20564c,0x205851,0x205ca8,0x2063aa,
+ 0x2066fe,0x2066fd,0x20695a,0x2072d9,0x20758f,0x20758e,0x20790e,0x207956,0x2079df,0x207c97,
+ 0x207d20,0x207d44,0x208607,0x208a34,0x20963b,0x209061,0x209f20,0x2050e7,0x205275,0x2053cc,
+ 0x2053e2,0x205009,0x2055aa,0x2058ee,0x20594f,0x20723d,0x205b8b,0x205c64,0x20531d,0x2060e3,
+ 0x2060f3,0x20635c,0x206383,0x20633f,0x2063bb,0x2064cd,0x2065e9,0x2066f9,0x205de3,0x2069cd,
+ 0x2069fd,0x206f15,0x2071e5,0x204e89,0x2075e9,0x2076f8,0x207a93,0x207cdf,0x207dcf,0x207d9c,
+ 0x208061,0x208349,0x208358,0x20846c,0x2084bc,0x2085fb,0x2088c5,0x208d70,0x209001,0x20906d,
+ 0x209397,0x20971c,0x209a12,0x2050cf,0x205897,0x40618e,0x2081d3,0x208535,0x208d08,0x209020,
+ 0x204fc3,0x205074,0x205247,0x205373,0x20606f,0x206349,0x20675f,0x206e2c,0x208db3,0x20901f,
+ 0x204fd7,0x205c5e,0x208cca,0x2065cf,0x207d9a,0x205352,0x208896,0x205176,0x2063c3,0x205b58,
+ 0x205b6b,0x205c0a,0x20640d,0x206751,0x20905c,0x204ed6,0x20591a,0x20592a,0x206c70,0x208a51,
+ 0x20553e,0x205815,0x2059a5,0x2060f0,0x206253,0x2067c1,0x208235,0x206955,0x209640,0x2099c4,
+ 0x209a28,0x204f53,0x205806,0x205bfe,0x208010,0x205cb1,0x205e2f,0x205f85,0x206020,0x20614b,
+ 0x206234,0x2066ff,0x206cf0,0x206ede,0x2080ce,0x20817f,0x2082d4,0x20888b,0x208cb8,0x209000,
+ 0x20902e,0x20968a,0x209edb,0x209bdb,0x204ee3,0x2053f0,0x205927,0x207b2c,0x20918d,0x20984c,
+ 0x209df9,0x206edd,0x207027,0x205353,0x205544,0x205b85,0x206258,0x20629e,0x2062d3,0x206ca2,
+ 0x206fef,0x407422,0x208a17,0x209438,0x206fc1,0x208afe,0x208338,0x2051e7,0x2086f8,0x2053ea,
+ 0x2053e9,0x204f46,0x209054,0x208fb0,0x20596a,0x208131,0x405dfd,0x207aea,0x208fbf,0x2068da,
+ 0x208c37,0x2072f8,0x209c48,0x206a3d,0x208ab0,0x204e39,0x205358,0x405606,0x205766,0x2062c5,
+ 0x2063a2,0x2065e6,0x206b4e,0x206de1,0x206e5b,0x2070ad,0x2077ed,0x207aef,0x207baa,0x207dbb,
+ 0x20803d,0x2080c6,0x2086cb,0x208a95,0x20935b,0x2056e3,0x2058c7,0x205f3e,0x2065ad,0x206696,
+ 0x206a80,0x206bb5,0x207537,0x208ac7,0x205024,0x2077e5,0x205730,0x205f1b,0x206065,0x20667a,
+ 0x206c60,0x2075f4,0x207a1a,0x207f6e,0x2081f4,0x208718,0x209045,0x2099b3,0x207bc9,0x20755c,
+ 0x207af9,0x207b51,0x2084c4,0x209010,0x2079e9,0x207a92,0x208336,0x205ae1,0x207740,0x204e2d,
+ 0x204ef2,0x205b99,0x205fe0,0x2062bd,0x20663c,0x2067f1,0x206ce8,0x20866b,0x208877,0x208a3b,
+ 0x20914e,0x2092f3,0x2099d0,0x206a17,0x207026,0x40732a,0x2082e7,0x208457,0x208caf,0x204e01,
+ 0x205146,0x2051cb,0x20558b,0x205bf5,0x205e16,0x205e33,0x205e81,0x205f14,0x205f35,0x205f6b,
+ 0x205fb4,0x2061f2,0x206311,0x2066a2,0x20671d,0x406f6e,0x207252,0x20753a,0x20773a,0x208074,
+ 0x208139,0x208178,0x208776,0x208abf,0x208adc,0x208d85,0x208df3,0x20929a,0x209577,0x209802,
+ 0x209ce5,0x2052c5,0x206357,0x2076f4,0x206715,0x206c88,0x2073cd,0x208cc3,0x2093ae,0x209673,
+ 0x206d25,0x20589c,0x20690e,0x2069cc,0x208ffd,0x20939a,0x2075db,0x20901a,0x20585a,0x206802,
+ 0x2063b4,0x2069fb,0x204f43,0x206f2c,0x2067d8,0x208fbb,0x208526,0x207db4,0x209354,0x20693f,
+ 0x206f70,0x20576a,0x2058f7,0x205b2c,0x207d2c,0x20722a,0x20540a,0x2091e3,0x409db4,0x204ead,
+ 0x204f4e,0x20505c,0x205075,0x205243,0x208c9e,0x205448,0x205824,0x205b9a,0x205e1d,0x205e95,
+ 0x205ead,0x205ef7,0x205f1f,0x20608c,0x2062b5,0x20633a,0x2063d0,0x2068af,0x206c40,0x207887,
+ 0x20798e,0x207a0b,0x207de0,0x208247,0x208a02,0x208ae6,0x208e44,0x209013,0x2090b8,0x20912d,
+ 0x2091d8,0x209f0e,0x206ce5,0x206458,0x2064e2,0x206575,0x206ef4,0x207684,0x207b1b,0x209069,
+ 0x2093d1,0x206eba,0x2054f2,0x205fb9,0x2064a4,0x208f4d,0x208fed,0x209244,0x205178,0x20586b,
+ 0x205929,0x205c55,0x205e97,0x206dfb,0x207e8f,0x20751c,0x208cbc,0x208ee2,0x20985b,0x2070b9,
+ 0x204f1d,0x206bbf,0x206fb1,0x207530,0x2096fb,0x20514e,0x205410,0x205835,0x205857,0x2059ac,
+ 0x205c60,0x205f92,0x206597,0x20675c,0x206e21,0x20767b,0x2083df,0x208ced,0x209014,0x4090fd,
+ 0x20934d,0x207825,0x20783a,0x2052aa,0x205ea6,0x20571f,0x205974,0x206012,0x205012,0x20515a,
+ 0x4051ac,0x2051cd,0x205200,0x205510,0x205854,0x205858,0x205957,0x205b95,0x205cf6,0x205d8b,
+ 0x2060bc,0x206295,0x20642d,0x206771,0x206843,0x2068bc,0x2068df,0x2076d7,0x206dd8,0x206e6f,
+ 0x206d9b,0x20706f,0x2071c8,0x205f53,0x2075d8,0x207977,0x207b49,0x207b54,0x207b52,0x407cd6,
+ 0x207d71,0x205230,0x208463,0x208569,0x2085e4,0x208a0e,0x208b04,0x208c46,0x208e0f,0x209003,
+ 0x20900f,0x209419,0x209676,0x20982d,0x209a30,0x2095d8,0x2050cd,0x2052d5,0x20540c,0x205802,
+ 0x205c0e,0x2061a7,0x20649e,0x206d1e,0x2077b3,0x207ae5,0x2080f4,0x208404,0x209053,0x209285,
+ 0x205ce0,0x209d07,0x20533f,0x205f97,0x205fb3,0x206d9c,0x207279,0x207763,0x2079bf,0x207be4,
+ 0x206bd2,0x2072ec,0x208aad,0x206803,0x206a61,0x2051f8,0x207a81,0x206934,0x205c4a,0x209cf6,
+ 0x2082eb,0x205bc5,0x209149,0x20701e,0x205678,0x205c6f,0x2060c7,0x206566,0x206c8c,0x208c5a,
+ 0x209041,0x209813,0x205451,0x2066c7,0x20920d,0x205948,0x2090a3,0x205185,0x204e4d,0x2051ea,
+ 0x208599,0x208b0e,0x207058,0x20637a,0x20934b,0x206962,0x2099b4,0x207e04,0x207577,0x205357,
+ 0x206960,0x208edf,0x4096e3,0x206c5d,0x204e8c,0x205c3c,0x205f10,0x208fe9,0x205302,0x208cd1,
+ 0x208089,0x208679,0x205eff,0x2065e5,0x204e73,0x205165,0x205982,0x205c3f,0x2097ee,0x204efb,
+ 0x20598a,0x205fcd,0x208a8d,0x206fe1,0x2079b0,0x207962,0x405be7,0x208471,0x20732b,0x2071b1,
+ 0x205e74,0x205ff5,0x20637b,0x20649a,0x2071c3,0x207c98,0x204e43,0x205efc,0x204e4b,0x2057dc,
+ 0x2056a2,0x2060a9,0x206fc3,0x207d0d,0x2080fd,0x208133,0x2081bf,0x208fb2,0x208997,0x2086a4,
+ 0x205df4,0x20628a,0x2064ad,0x208987,0x206777,0x206ce2,0x206d3e,0x207436,0x207834,0x205a46,
+ 0x207f75,0x2082ad,0x2099ac,0x204ff3,0x205ec3,0x2062dd,0x206392,0x206557,0x20676f,0x2076c3,
+ 0x20724c,0x2080cc,0x2080ba,0x208f29,0x20914d,0x20500d,0x2057f9,0x205a92,0x406885,0x206973,
+ 0x207164,0x2072fd,0x208cb7,0x2058f2,0x208ce0,0x20966a,0x209019,0x20877f,0x2079e4,0x2077e7,
+ 0x208429,0x204f2f,0x205265,0x20535a,0x2062cd,0x2067cf,0x206cca,0x20767d,0x207b94,0x207c95,
+ 0x208236,0x208584,0x208feb,0x2066dd,0x206f20,0x207206,0x207e1b,0x2083ab,0x2099c1,0x209ea6,
+ 0x2051fd,0x207bb1,0x207872,0x207bb8,0x208087,0x207b48,0x206ae8,0x205e61,0x20808c,0x207551,
+ 0x207560,0x20516b,0x209262,0x206e8c,0x20767a,0x209197,0x209aea,0x204f10,0x207f70,0x20629c,
+ 0x207b4f,0x2095a5,0x209ce9,0x20567a,0x205859,0x2086e4,0x2096bc,0x204f34,0x205224,0x20534a,
+ 0x2053cd,0x2053db,0x205e06,0x20642c,0x206591,0x20677f,0x206c3e,0x206c4e,0x207248,0x2072af,
+ 0x2073ed,0x207554,0x207e41,0x20822c,0x2085e9,0x208ca9,0x207bc4,0x2091c6,0x207169,0x209812,
+ 0x4098ef,0x20633d,0x206669,0x20756a,0x2076e4,0x2078d0,0x208543,0x2086ee,0x20532a,0x405351,
+ 0x205426,0x205983,0x205e87,0x205f7c,0x2060b2,0x206249,0x206279,0x2062ab,0x206590,0x206bd4,
+ 0x206ccc,0x2075b2,0x2076ae,0x407891,0x2079d8,0x207dcb,0x207f77,0x2080a5,0x2088ab,0x208ab9,
+ 0x208cbb,0x20907f,0x20975e,0x2098db,0x206a0b,0x207c38,0x205099,0x205c3e,0x205fae,0x206787,
+ 0x206bd8,0x207435,0x207709,0x207f8e,0x209f3b,0x2067ca,0x207a17,0x205339,0x20758b,0x209aed,
+ 0x205f66,0x20819d,0x2083f1,0x208098,0x205f3c,0x205fc5,0x207562,0x207b46,0x20903c,0x206867,
+ 0x2059eb,0x205a9b,0x207d10,0x20767e,0x208b2c,0x204ff5,0x205f6a,0x206a19,0x206c37,0x206f02,
+ 0x2074e2,0x207968,0x208868,0x208a55,0x208c79,0x205edf,0x2063cf,0x2075c5,0x2079d2,0x2082d7,
+ 0x209328,0x2092f2,0x20849c,0x2086ed,0x209c2d,0x2054c1,0x205f6c,0x20658c,0x206d5c,0x207015,
+ 0x208ca7,0x408cd3,0x40983b,0x40654f,0x2074f6,0x204e0d,0x204ed8,0x2057e0,0x20592b,0x205a66,
+ 0x205bcc,0x2051a8,0x205e03,0x205e9c,0x206016,0x206276,0x206577,0x2065a7,0x20666e,0x206d6e,
+ 0x207236,0x207b26,0x208150,0x20819a,0x208299,0x208b5c,0x208ca0,0x208ce6,0x208d74,0x20961c,
+ 0x209644,0x204fae,0x2064ab,0x206b66,0x20821e,0x208461,0x20856a,0x2090e8,0x205c01,0x206953,
+ 0x2098a8,0x20847a,0x208557,0x204f0f,0x20526f,0x205fa9,0x205e45,0x20670d,0x20798f,0x208179,
+ 0x208907,0x208986,0x206df5,0x205f17,0x206255,0x206cb8,0x204ecf,0x207269,0x209b92,0x205206,
+ 0x20543b,0x205674,0x2058b3,0x2061a4,0x20626e,0x20711a,0x20596e,0x207c89,0x207cde,0x207d1b,
+ 0x2096f0,0x206587,0x20805e,0x204e19,0x204f75,0x205175,0x205840,0x205e63,0x205e73,0x205f0a,
+ 0x2067c4,0x204e26,0x20853d,0x209589,0x20965b,0x207c73,0x209801,0x2050fb,0x2058c1,0x207656,
+ 0x2078a7,0x205225,0x2077a5,0x208511,0x207b86,0x20504f,0x205909,0x207247,0x207bc7,0x207de8,
+ 0x208fba,0x208fd4,0x20904d,0x204fbf,0x4052c9,0x205a29,0x205f01,0x2097ad,0x204fdd,0x208217,
+ 0x2092ea,0x205703,0x206355,0x206b69,0x20752b,0x2088dc,0x208f14,0x207a42,0x2052df,0x205893,
+ 0x206155,0x20620a,0x2066ae,0x206bcd,0x207c3f,0x2083e9,0x205023,0x204ff8,0x205305,0x205446,
+ 0x205831,0x205949,0x205b9d,0x205cf0,0x205cef,0x205d29,0x205e96,0x2062b1,0x206367,0x20653e,
+ 0x2065b9,0x20670b,0x206cd5,0x206ce1,0x2070f9,0x207832,0x207e2b,0x2080de,0x2082b3,0x20840c,
+ 0x2084ec,0x208702,0x208912,0x208a2a,0x208c4a,0x2090a6,0x2092d2,0x2098fd,0x209cf3,0x209d6c,
+ 0x204e4f,0x204ea1,0x20508d,0x205256,0x20574a,0x2059a8,0x205e3d,0x205fd8,0x205fd9,0x20623f,
+ 0x2066b4,0x20671b,0x2067d0,0x2068d2,0x205192,0x207d21,0x2080aa,0x2081a8,0x208b00,0x208c8c,
+ 0x208cbf,0x20927e,0x209632,0x205420,0x20982c,0x205317,0x2050d5,0x20535c,0x4058a8,0x2064b2,
+ 0x206734,0x207267,0x207766,0x207a46,0x2091e6,0x2052c3,0x206ca1,0x206b86,0x205800,0x205e4c,
+ 0x205954,0x20672c,0x207ffb,0x2051e1,0x2076c6,0x206469,0x2078e8,0x209b54,0x209ebb,0x2057cb,
+ 0x2059b9,0x206627,0x20679a,0x206bce,0x2054e9,0x2069d9,0x205e55,0x20819c,0x206795,0x209baa,
+ 0x2067fe,0x209c52,0x20685d,0x204ea6,0x204fe3,0x2053c8,0x2062b9,0x20672b,0x206cab,0x208fc4,
+ 0x204fad,0x207e6d,0x209ebf,0x204e07,0x206162,0x206e80,0x206f2b,0x208513,0x205473,0x20672a,
+ 0x209b45,0x205df3,0x207b95,0x205cac,0x205bc6,0x20871c,0x206e4a,0x2084d1,0x207a14,0x208108,
+ 0x205999,0x207c8d,0x206c11,0x207720,0x2052d9,0x205922,0x207121,0x20725f,0x2077db,0x209727,
+ 0x209d61,0x20690b,0x205a7f,0x205a18,0x2051a5,0x20540d,0x20547d,0x20660e,0x2076df,0x208ff7,
+ 0x209298,0x209cf4,0x2059ea,0x20725d,0x206ec5,0x20514d,0x2068c9,0x207dbf,0x207dec,0x209762,
+ 0x209eba,0x206478,0x206a21,0x208302,0x205984,0x205b5f,0x206bdb,0x20731b,0x2076f2,0x207db2,
+ 0x208017,0x208499,0x205132,0x206728,0x209ed9,0x2076ee,0x206762,0x2052ff,0x209905,0x205c24,
+ 0x20623b,0x207c7e,0x208cb0,0x20554f,0x2060b6,0x207d0b,0x209580,0x205301,0x204e5f,0x2051b6,
+ 0x20591c,0x20723a,0x208036,0x2091ce,0x205f25,0x2077e2,0x205384,0x205f79,0x207d04,0x2085ac,
+ 0x208a33,0x208e8d,0x209756,0x2067f3,0x2085ae,0x209453,0x206109,0x206108,0x206cb9,0x207652,
+ 0x408aed,0x208f38,0x20552f,0x204f51,0x20512a,0x2052c7,0x2053cb,0x205ba5,0x205e7d,0x2060a0,
+ 0x206182,0x2063d6,0x206709,0x2067da,0x206e67,0x206d8c,0x207336,0x207337,0x207531,0x407950,
+ 0x2088d5,0x208a98,0x20904a,0x209091,0x2090f5,0x2096c4,0x20878d,0x205915,0x204e88,0x204f59,
+ 0x204e0e,0x208a89,0x208f3f,0x209810,0x2050ad,0x205e7c,0x205996,0x205bb9,0x205eb8,0x2063da,
+ 0x2063fa,0x2064c1,0x2066dc,0x20694a,0x2069d8,0x206d0b,0x206eb6,0x207194,0x207528,0x207aaf,
+ 0x407f8a,0x208000,0x208449,0x2084c9,0x208981,0x208b21,0x208e0a,0x209065,0x20967d,0x20990a,
+ 0x20617e,0x206291,0x206b32,0x206c83,0x206d74,0x207fcc,0x207ffc,0x206dc0,0x207f85,0x2087ba,
+ 0x2088f8,0x206765,0x2083b1,0x20983c,0x2096f7,0x206d1b,0x207d61,0x20843d,0x20916a,0x204e71,
+ 0x205375,0x205d50,0x406b04,0x206feb,0x2085cd,0x20862d,0x2089a7,0x205229,0x20540f,0x205c65,
+ 0x20674e,0x2068a8,0x207406,0x207483,0x2075e2,0x2088cf,0x2088e1,0x2091cc,0x2096e2,0x209678,
+ 0x205f8b,0x207387,0x207acb,0x20844e,0x2063a0,0x207565,0x205289,0x206d41,0x206e9c,0x207409,
+ 0x207559,0x20786b,0x207c92,0x209686,0x207adc,0x209f8d,0x204fb6,0x20616e,0x2065c5,0x40865c,
+ 0x204e86,0x204eae,0x2050da,0x204e21,0x2051cc,0x205bee,0x206599,0x206881,0x206dbc,0x20731f,
+ 0x207642,0x2077ad,0x207a1c,0x207ce7,0x20826f,0x208ad2,0x20907c,0x2091cf,0x209675,0x209818,
+ 0x20529b,0x207dd1,0x20502b,0x205398,0x206797,0x206dcb,0x2071d0,0x207433,0x2081e8,0x208f2a,
+ 0x2096a3,0x209c57,0x209e9f,0x207460,0x205841,0x206d99,0x207d2f,0x40985e,0x204ee4,0x204f36,
+ 0x204f8b,0x2051b7,0x2052b1,0x205dba,0x20601c,0x2073b2,0x20793c,0x2082d3,0x209234,0x2096b7,
+ 0x2096f6,0x20970a,0x209e97,0x209f62,0x2066a6,0x206b74,0x205217,0x2052a3,0x2070c8,0x2088c2,
+ 0x405ec9,0x20604b,0x206190,0x406f23,0x407149,0x207c3e,0x407df4,0x20806f,0x4084ee,0x409023,
+ 0x20932c,0x205442,0x209b6f,0x206ad3,0x207089,0x208cc2,0x208def,0x209732,0x2052b4,0x205a41,
+ 0x205eca,0x205f04,0x406717,0x20697c,0x206994,0x206d6a,0x206f0f,0x207262,0x2072fc,0x207bed,
+ 0x208001,0x20807e,0x20874b,0x2090ce,0x20516d,0x209e93,0x207984,0x20808b,0x209332,0x208ad6,
+ 0x20502d,0x20548c,0x208a71,0x206b6a,0x208cc4,0x208107,0x2060d1,0x2067a0,0x209df2,0x204e99,
+ 0x204e98,0x209c10,0x208a6b,0x2085c1,0x208568,0x206900,0x206e7e,0x207897,0x208155,0x205f0c,
+ 0x204e10,0x204e15,0x204e2a,0x204e31,0x204e36,0x204e3c,0x204e3f,0x204e42,0x204e56,0x204e58,
+ 0x204e82,0x204e85,0x208c6b,0x204e8a,0x208212,0x205f0d,0x204e8e,0x204e9e,0x204e9f,0x204ea0,
+ 0x204ea2,0x204eb0,0x204eb3,0x204eb6,0x204ece,0x204ecd,0x204ec4,0x204ec6,0x204ec2,0x204ed7,
+ 0x204ede,0x204eed,0x204edf,0x204ef7,0x204f09,0x204f5a,0x204f30,0x204f5b,0x204f5d,0x204f57,
+ 0x204f47,0x204f76,0x204f88,0x204f8f,0x204f98,0x204f7b,0x204f69,0x204f70,0x204f91,0x204f6f,
+ 0x204f86,0x204f96,0x205118,0x204fd4,0x204fdf,0x204fce,0x204fd8,0x204fdb,0x204fd1,0x204fda,
+ 0x204fd0,0x204fe4,0x204fe5,0x20501a,0x205028,0x205014,0x20502a,0x205025,0x205005,0x204f1c,
+ 0x204ff6,0x205021,0x205029,0x20502c,0x204ffe,0x204fef,0x205011,0x205006,0x205043,0x205047,
+ 0x206703,0x205055,0x205050,0x205048,0x20505a,0x205056,0x20506c,0x205078,0x205080,0x20509a,
+ 0x205085,0x2050b4,0x2050b2,0x2050c9,0x2050ca,0x2050b3,0x2050c2,0x2050d6,0x2050de,0x2050e5,
+ 0x2050ed,0x2050e3,0x2050ee,0x2050f9,0x2050f5,0x205109,0x205101,0x205102,0x205116,0x205115,
+ 0x205114,0x20511a,0x205121,0x20513a,0x205137,0x20513c,0x20513b,0x20513f,0x205140,0x205152,
+ 0x20514c,0x405154,0x205162,0x207af8,0x205169,0x20516a,0x20516e,0x205180,0x205182,0x2056d8,
+ 0x20518c,0x205189,0x20518f,0x205191,0x205193,0x405195,0x205196,0x2051a4,0x2051a6,0x2051a2,
+ 0x2051a9,0x2051aa,0x2051ab,0x2051b3,0x2051b1,0x2051b2,0x2051b0,0x2051b5,0x2051bd,0x2051c5,
+ 0x2051c9,0x2051db,0x2051e0,0x208655,0x2051e9,0x2051ed,0x2051f0,0x2051f5,0x2051fe,0x205204,
+ 0x20520b,0x205214,0x20520e,0x205227,0x20522a,0x20522e,0x205233,0x205239,0x20524f,0x205244,
+ 0x20524b,0x20524c,0x20525e,0x205254,0x20526a,0x205274,0x205269,0x205273,0x20527f,0x20527d,
+ 0x20528d,0x205294,0x205292,0x205271,0x205288,0x205291,0x208fa8,0x208fa7,0x2052ac,0x2052ad,
+ 0x2052bc,0x2052b5,0x2052c1,0x2052cd,0x2052d7,0x2052de,0x2052e3,0x2052e6,0x2098ed,0x2052e0,
+ 0x2052f3,0x2052f5,0x2052f8,0x2052f9,0x205306,0x205308,0x207538,0x20530d,0x205310,0x20530f,
+ 0x205315,0x20531a,0x205323,0x20532f,0x205331,0x205333,0x205338,0x205340,0x205346,0x205345,
+ 0x204e17,0x205349,0x20534d,0x2051d6,0x20535e,0x205369,0x20536e,0x205918,0x20537b,0x205377,
+ 0x205382,0x205396,0x2053a0,0x2053a6,0x2053a5,0x2053ae,0x2053b0,0x2053b6,0x2053c3,0x207c12,
+ 0x2096d9,0x2053df,0x2066fc,0x2071ee,0x2053ee,0x2053e8,0x2053ed,0x2053fa,0x205401,0x20543d,
+ 0x205440,0x20542c,0x20542d,0x20543c,0x20542e,0x205436,0x205429,0x20541d,0x20544e,0x20548f,
+ 0x205475,0x20548e,0x20545f,0x205471,0x205477,0x205470,0x205492,0x20547b,0x205480,0x205476,
+ 0x205484,0x205490,0x205486,0x2054c7,0x2054a2,0x2054b8,0x2054a5,0x2054ac,0x2054c4,0x2054c8,
+ 0x2054a8,0x2054ab,0x2054c2,0x2054a4,0x2054be,0x2054bc,0x2054d8,0x2054e5,0x2054e6,0x20550f,
+ 0x205514,0x2054fd,0x2054ee,0x2054ed,0x2054fa,0x2054e2,0x205539,0x205540,0x205563,0x20554c,
+ 0x20552e,0x20555c,0x205545,0x205556,0x205557,0x205538,0x205533,0x20555d,0x205599,0x205580,
+ 0x2054af,0x20558a,0x20559f,0x20557b,0x20557e,0x205598,0x20559e,0x2055ae,0x20557c,0x205583,
+ 0x2055a9,0x205587,0x2055a8,0x2055da,0x2055c5,0x2055df,0x2055c4,0x2055dc,0x2055e4,0x2055d4,
+ 0x205614,0x2055f7,0x205616,0x2055fe,0x2055fd,0x20561b,0x2055f9,0x20564e,0x205650,0x2071df,
+ 0x205634,0x205636,0x205632,0x205638,0x20566b,0x205664,0x20562f,0x20566c,0x20566a,0x205686,
+ 0x205680,0x20568a,0x2056a0,0x205694,0x20568f,0x2056a5,0x2056ae,0x2056b6,0x2056b4,0x2056c2,
+ 0x2056bc,0x2056c1,0x2056c3,0x2056c0,0x2056c8,0x2056ce,0x2056d1,0x2056d3,0x2056d7,0x2056ee,
+ 0x2056f9,0x205700,0x2056ff,0x205704,0x205709,0x205708,0x20570b,0x20570d,0x205713,0x205718,
+ 0x205716,0x2055c7,0x20571c,0x205726,0x205737,0x205738,0x20574e,0x20573b,0x205740,0x20574f,
+ 0x205769,0x2057c0,0x205788,0x205761,0x20577f,0x205789,0x205793,0x2057a0,0x2057b3,0x2057a4,
+ 0x2057aa,0x2057b0,0x2057c3,0x2057c6,0x2057d4,0x2057d2,0x2057d3,0x20580a,0x2057d6,0x2057e3,
+ 0x20580b,0x205819,0x20581d,0x205872,0x205821,0x205862,0x20584b,0x205870,0x206bc0,0x205852,
+ 0x20583d,0x205879,0x205885,0x2058b9,0x20589f,0x2058ab,0x2058ba,0x2058de,0x2058bb,0x2058b8,
+ 0x2058ae,0x2058c5,0x2058d3,0x2058d1,0x2058d7,0x2058d9,0x2058d8,0x2058e5,0x2058dc,0x2058e4,
+ 0x2058df,0x2058ef,0x2058fa,0x2058f9,0x2058fb,0x2058fc,0x2058fd,0x205902,0x20590a,0x205910,
+ 0x20591b,0x2068a6,0x205925,0x20592c,0x20592d,0x205932,0x205938,0x20593e,0x207ad2,0x205955,
+ 0x205950,0x20594e,0x20595a,0x205958,0x205962,0x205960,0x205967,0x20596c,0x205969,0x205978,
+ 0x205981,0x20599d,0x204f5e,0x204fab,0x2059a3,0x2059b2,0x2059c6,0x2059e8,0x2059dc,0x20598d,
+ 0x2059d9,0x2059da,0x205a25,0x205a1f,0x205a11,0x205a1c,0x205a09,0x205a1a,0x205a40,0x205a6c,
+ 0x205a49,0x205a35,0x205a36,0x205a62,0x205a6a,0x205a9a,0x205abc,0x205abe,0x205acb,0x205ac2,
+ 0x205abd,0x205ae3,0x205ad7,0x205ae6,0x205ae9,0x205ad6,0x205afa,0x205afb,0x205b0c,0x205b0b,
+ 0x205b16,0x205b32,0x205ad0,0x205b2a,0x205b36,0x205b3e,0x205b43,0x205b45,0x205b40,0x205b51,
+ 0x205b55,0x205b5a,0x205b5b,0x205b65,0x205b69,0x205b70,0x205b73,0x205b75,0x205b78,0x206588,
+ 0x205b7a,0x205b80,0x205b83,0x205ba6,0x205bb8,0x205bc3,0x205bc7,0x205bc9,0x205bd4,0x205bd0,
+ 0x205be4,0x205be6,0x205be2,0x205bde,0x205be5,0x205beb,0x205bf0,0x205bf6,0x205bf3,0x205c05,
+ 0x205c07,0x205c08,0x205c0d,0x205c13,0x205c20,0x205c22,0x205c28,0x205c38,0x205c39,0x205c41,
+ 0x205c46,0x205c4e,0x205c53,0x205c50,0x205c4f,0x205b71,0x205c6c,0x405c6e,0x204e62,0x205c76,
+ 0x205c79,0x205c8c,0x205c91,0x205c94,0x20599b,0x205cab,0x205cbb,0x205cb6,0x205cbc,0x205cb7,
+ 0x205cc5,0x205cbe,0x205cc7,0x205cd9,0x205ce9,0x205cfd,0x205cfa,0x205ced,0x205d8c,0x205cea,
+ 0x205d0b,0x205d15,0x205d17,0x205d5c,0x205d1f,0x205d1b,0x205d11,0x205d14,0x205d22,0x205d1a,
+ 0x205d19,0x205d18,0x205d4c,0x205d52,0x205d4e,0x205d4b,0x205d6c,0x205d73,0x205d76,0x205d87,
+ 0x205d84,0x205d82,0x205da2,0x205d9d,0x205dac,0x205dae,0x205dbd,0x205d90,0x205db7,0x205dbc,
+ 0x205dc9,0x205dcd,0x205dd3,0x205dd2,0x205dd6,0x205ddb,0x205deb,0x205df2,0x205df5,0x205e0b,
+ 0x205e1a,0x205e19,0x205e11,0x205e1b,0x205e36,0x205e37,0x205e44,0x205e43,0x205e40,0x205e4e,
+ 0x205e57,0x205e54,0x205e5f,0x205e62,0x205e64,0x205e47,0x205e75,0x205e76,0x205e7a,0x209ebc,
+ 0x205e7f,0x205ea0,0x205ec1,0x205ec2,0x205ec8,0x205ed0,0x205ecf,0x205ed6,0x205ee3,0x205edd,
+ 0x205eda,0x205edb,0x205ee2,0x205ee1,0x205ee8,0x205ee9,0x205eec,0x205ef1,0x205ef3,0x205ef0,
+ 0x205ef4,0x205ef8,0x205efe,0x205f03,0x205f09,0x205f5d,0x205f5c,0x205f0b,0x205f11,0x205f16,
+ 0x205f29,0x205f2d,0x205f38,0x205f41,0x205f48,0x205f4c,0x205f4e,0x205f2f,0x205f51,0x205f56,
+ 0x205f57,0x205f59,0x205f61,0x205f6d,0x205f73,0x205f77,0x205f83,0x205f82,0x205f7f,0x205f8a,
+ 0x205f88,0x205f91,0x205f87,0x205f9e,0x205f99,0x205f98,0x205fa0,0x205fa8,0x205fad,0x205fbc,
+ 0x205fd6,0x205ffb,0x205fe4,0x205ff8,0x205ff1,0x205fdd,0x2060b3,0x205fff,0x206021,0x206060,
+ 0x206019,0x206010,0x206029,0x20600e,0x206031,0x20601b,0x206015,0x20602b,0x206026,0x20600f,
+ 0x20603a,0x20605a,0x206041,0x20606a,0x206077,0x20605f,0x20604a,0x206046,0x20604d,0x206063,
+ 0x206043,0x206064,0x206042,0x20606c,0x20606b,0x206059,0x206081,0x20608d,0x2060e7,0x206083,
+ 0x20609a,0x206084,0x20609b,0x206096,0x206097,0x206092,0x2060a7,0x20608b,0x2060e1,0x2060b8,
+ 0x2060e0,0x2060d3,0x2060b4,0x205ff0,0x2060bd,0x2060c6,0x2060b5,0x2060d8,0x20614d,0x206115,
+ 0x206106,0x2060f6,0x2060f7,0x206100,0x2060f4,0x2060fa,0x206103,0x206121,0x2060fb,0x2060f1,
+ 0x20610d,0x20610e,0x206147,0x20613e,0x206128,0x206127,0x20614a,0x20613f,0x20613c,0x20612c,
+ 0x206134,0x20613d,0x206142,0x206144,0x206173,0x206177,0x206158,0x206159,0x20615a,0x20616b,
+ 0x206174,0x20616f,0x206165,0x206171,0x20615f,0x20615d,0x206153,0x206175,0x206199,0x206196,
+ 0x206187,0x2061ac,0x206194,0x20619a,0x20618a,0x206191,0x2061ab,0x2061ae,0x2061cc,0x2061ca,
+ 0x2061c9,0x2061f7,0x2061c8,0x2061c3,0x2061c6,0x2061ba,0x2061cb,0x207f79,0x2061cd,0x2061e6,
+ 0x2061e3,0x2061f6,0x2061fa,0x2061f4,0x2061ff,0x2061fd,0x2061fc,0x2061fe,0x206200,0x206208,
+ 0x206209,0x20620d,0x20620c,0x206214,0x20621b,0x20621e,0x206221,0x20622a,0x20622e,0x206230,
+ 0x206232,0x206233,0x206241,0x20624e,0x20625e,0x206263,0x20625b,0x206260,0x206268,0x20627c,
+ 0x206282,0x206289,0x20627e,0x206292,0x206293,0x206296,0x4062d4,0x206283,0x206294,0x2062d7,
+ 0x2062d1,0x2062bb,0x2062cf,0x2062ff,0x2062c6,0x2064d4,0x2062c8,0x2062dc,0x2062cc,0x2062ca,
+ 0x2062c2,0x2062c7,0x20629b,0x2062c9,0x20630c,0x2062ee,0x2062f1,0x206327,0x206302,0x206308,
+ 0x2062ef,0x2062f5,0x206350,0x20633e,0x20634d,0x20641c,0x20634f,0x206396,0x20638e,0x206380,
+ 0x2063ab,0x206376,0x2063a3,0x20638f,0x206389,0x20639f,0x2063b5,0x20636b,0x206369,0x2063be,
+ 0x2063e9,0x2063c0,0x2063c6,0x2063e3,0x2063c9,0x2063d2,0x2063f6,0x2063c4,0x206416,0x206434,
+ 0x206406,0x206413,0x206426,0x206436,0x20651d,0x206417,0x206428,0x20640f,0x206467,0x20646f,
+ 0x206476,0x20644e,0x20652a,0x206495,0x206493,0x2064a5,0x2064a9,0x206488,0x2064bc,0x2064da,
+ 0x2064d2,0x2064c5,0x2064c7,0x2064bb,0x2064d8,0x2064c2,0x2064f1,0x2064e7,0x208209,0x2064e0,
+ 0x2064e1,0x2062ac,0x2064e3,0x2064ef,0x20652c,0x2064f6,0x2064f4,0x2064f2,0x2064fa,0x206500,
+ 0x2064fd,0x206518,0x20651c,0x206505,0x206524,0x206523,0x20652b,0x206534,0x206535,0x206537,
+ 0x206536,0x206538,0x20754b,0x206548,0x206556,0x206555,0x20654d,0x206558,0x20655e,0x20655d,
+ 0x206572,0x206578,0x206582,0x206583,0x208b8a,0x20659b,0x20659f,0x2065ab,0x2065b7,0x2065c3,
+ 0x2065c6,0x2065c1,0x2065c4,0x2065cc,0x2065d2,0x2065db,0x2065d9,0x2065e0,0x2065e1,0x2065f1,
+ 0x206772,0x20660a,0x206603,0x2065fb,0x206773,0x206635,0x206636,0x206634,0x20661c,0x20664f,
+ 0x206644,0x206649,0x206641,0x20665e,0x20665d,0x206664,0x206667,0x206668,0x20665f,0x206662,
+ 0x206670,0x206683,0x206688,0x20668e,0x206689,0x206684,0x206698,0x20669d,0x2066c1,0x2066b9,
+ 0x2066c9,0x2066be,0x2066bc,0x2066c4,0x2066b8,0x2066d6,0x2066da,0x2066e0,0x20663f,0x2066e6,
+ 0x2066e9,0x2066f0,0x2066f5,0x2066f7,0x20670f,0x206716,0x20671e,0x206726,0x206727,0x209738,
+ 0x20672e,0x20673f,0x206736,0x206741,0x206738,0x206737,0x206746,0x20675e,0x206760,0x206759,
+ 0x206763,0x206764,0x206789,0x206770,0x2067a9,0x20677c,0x20676a,0x20678c,0x20678b,0x2067a6,
+ 0x2067a1,0x206785,0x2067b7,0x2067ef,0x2067b4,0x2067ec,0x2067b3,0x2067e9,0x2067b8,0x2067e4,
+ 0x2067de,0x2067dd,0x2067e2,0x2067ee,0x2067b9,0x2067ce,0x2067c6,0x2067e7,0x206a9c,0x20681e,
+ 0x206846,0x206829,0x206840,0x20684d,0x206832,0x20684e,0x2068b3,0x20682b,0x206859,0x206863,
+ 0x206877,0x20687f,0x20689f,0x20688f,0x2068ad,0x206894,0x20689d,0x20689b,0x206883,0x206aae,
+ 0x2068b9,0x206874,0x2068b5,0x2068a0,0x2068ba,0x20690f,0x20688d,0x20687e,0x206901,0x2068ca,
+ 0x206908,0x2068d8,0x206922,0x206926,0x2068e1,0x20690c,0x2068cd,0x2068d4,0x2068e7,0x2068d5,
+ 0x206936,0x206912,0x206904,0x2068d7,0x2068e3,0x206925,0x2068f9,0x2068e0,0x2068ef,0x206928,
+ 0x20692a,0x20691a,0x206923,0x206921,0x2068c6,0x206979,0x206977,0x20695c,0x206978,0x20696b,
+ 0x206954,0x20697e,0x20696e,0x206939,0x206974,0x20693d,0x206959,0x206930,0x206961,0x20695e,
+ 0x20695d,0x206981,0x20696a,0x2069b2,0x2069ae,0x2069d0,0x2069bf,0x2069c1,0x2069d3,0x2069be,
+ 0x2069ce,0x205be8,0x2069ca,0x2069dd,0x2069bb,0x2069c3,0x2069a7,0x206a2e,0x206991,0x2069a0,
+ 0x20699c,0x206995,0x2069b4,0x2069de,0x2069e8,0x206a02,0x206a1b,0x2069ff,0x206b0a,0x2069f9,
+ 0x2069f2,0x2069e7,0x206a05,0x2069b1,0x206a1e,0x2069ed,0x206a14,0x2069eb,0x206a0a,0x206a12,
+ 0x206ac1,0x206a23,0x206a13,0x206a44,0x206a0c,0x206a72,0x206a36,0x206a78,0x206a47,0x206a62,
+ 0x206a59,0x206a66,0x206a48,0x206a38,0x206a22,0x206a90,0x206a8d,0x206aa0,0x206a84,0x206aa2,
+ 0x206aa3,0x206a97,0x208617,0x206abb,0x206ac3,0x206ac2,0x206ab8,0x206ab3,0x206aac,0x206ade,
+ 0x206ad1,0x206adf,0x206aaa,0x206ada,0x206aea,0x206afb,0x206b05,0x208616,0x206afa,0x206b12,
+ 0x206b16,0x209b31,0x206b1f,0x206b38,0x206b37,0x2076dc,0x206b39,0x2098ee,0x206b47,0x206b43,
+ 0x206b49,0x206b50,0x206b59,0x206b54,0x206b5b,0x206b5f,0x206b61,0x206b78,0x206b79,0x206b7f,
+ 0x206b80,0x206b84,0x206b83,0x206b8d,0x206b98,0x206b95,0x206b9e,0x206ba4,0x206baa,0x206bab,
+ 0x206baf,0x206bb2,0x206bb1,0x206bb3,0x206bb7,0x206bbc,0x206bc6,0x206bcb,0x206bd3,0x206bdf,
+ 0x206bec,0x206beb,0x206bf3,0x206bef,0x209ebe,0x206c08,0x206c13,0x206c14,0x206c1b,0x206c24,
+ 0x206c23,0x206c5e,0x206c55,0x206c62,0x206c6a,0x206c82,0x206c8d,0x206c9a,0x206c81,0x206c9b,
+ 0x206c7e,0x206c68,0x206c73,0x206c92,0x206c90,0x206cc4,0x206cf1,0x206cd3,0x206cbd,0x206cd7,
+ 0x206cc5,0x206cdd,0x206cae,0x206cb1,0x206cbe,0x206cba,0x206cdb,0x206cef,0x206cd9,0x206cea,
+ 0x206d1f,0x20884d,0x206d36,0x206d2b,0x206d3d,0x206d38,0x206d19,0x206d35,0x206d33,0x206d12,
+ 0x206d0c,0x206d63,0x206d93,0x206d64,0x206d5a,0x206d79,0x206d59,0x206d8e,0x206d95,0x206fe4,
+ 0x206d85,0x206df9,0x206e15,0x206e0a,0x206db5,0x206dc7,0x206de6,0x206db8,0x206dc6,0x206dec,
+ 0x206dde,0x206dcc,0x206de8,0x206dd2,0x206dc5,0x206dfa,0x206dd9,0x206de4,0x206dd5,0x206dea,
+ 0x206dee,0x206e2d,0x206e6e,0x206e2e,0x206e19,0x206e72,0x206e5f,0x206e3e,0x206e23,0x206e6b,
+ 0x206e2b,0x206e76,0x206e4d,0x206e1f,0x206e43,0x206e3a,0x206e4e,0x206e24,0x206eff,0x206e1d,
+ 0x206e38,0x206e82,0x206eaa,0x206e98,0x206ec9,0x206eb7,0x206ed3,0x206ebd,0x206eaf,0x206ec4,
+ 0x206eb2,0x206ed4,0x206ed5,0x206e8f,0x206ea5,0x206ec2,0x206e9f,0x206f41,0x206f11,0x20704c,
+ 0x206eec,0x206ef8,0x206efe,0x206f3f,0x206ef2,0x206f31,0x206eef,0x206f32,0x206ecc,0x206f3e,
+ 0x206f13,0x206ef7,0x206f86,0x206f7a,0x206f78,0x206f81,0x206f80,0x206f6f,0x206f5b,0x206ff3,
+ 0x206f6d,0x206f82,0x206f7c,0x206f58,0x206f8e,0x206f91,0x206fc2,0x206f66,0x206fb3,0x206fa3,
+ 0x206fa1,0x206fa4,0x206fb9,0x206fc6,0x206faa,0x206fdf,0x206fd5,0x206fec,0x206fd4,0x206fd8,
+ 0x206ff1,0x206fee,0x206fdb,0x207009,0x20700b,0x206ffa,0x207011,0x207001,0x20700f,0x206ffe,
+ 0x20701b,0x20701a,0x206f74,0x20701d,0x207018,0x20701f,0x207030,0x20703e,0x207032,0x207051,
+ 0x207063,0x207099,0x207092,0x2070af,0x2070f1,0x2070ac,0x2070b8,0x2070b3,0x2070ae,0x2070df,
+ 0x2070cb,0x2070dd,0x2070d9,0x207109,0x2070fd,0x20711c,0x207119,0x207165,0x207155,0x207188,
+ 0x207166,0x207162,0x20714c,0x207156,0x20716c,0x20718f,0x2071fb,0x207184,0x207195,0x2071a8,
+ 0x2071ac,0x2071d7,0x2071b9,0x2071be,0x2071d2,0x2071c9,0x2071d4,0x2071ce,0x2071e0,0x2071ec,
+ 0x2071e7,0x2071f5,0x2071fc,0x2071f9,0x2071ff,0x20720d,0x207210,0x20721b,0x407228,0x20722d,
+ 0x20722c,0x207230,0x207232,0x20723b,0x20723c,0x20723f,0x207240,0x207246,0x20724b,0x207258,
+ 0x207274,0x20727e,0x207282,0x207281,0x207287,0x207292,0x207296,0x2072a2,0x2072a7,0x2072b9,
+ 0x2072b2,0x2072c3,0x2072c6,0x2072c4,0x2072ce,0x2072d2,0x2072e2,0x2072e0,0x2072e1,0x2072f9,
+ 0x2072f7,0x20500f,0x207317,0x20730a,0x20731c,0x207316,0x20731d,0x207334,0x20732f,0x207329,
+ 0x207325,0x20733e,0x20734e,0x20734f,0x209ed8,0x207357,0x20736a,0x207368,0x207370,0x207378,
+ 0x207375,0x20737b,0x20737a,0x2073c8,0x2073b3,0x2073ce,0x2073bb,0x2073c0,0x2073e5,0x2073ee,
+ 0x2073de,0x2074a2,0x207405,0x20746f,0x207425,0x2073f8,0x207432,0x20743a,0x207455,0x20743f,
+ 0x20745f,0x207459,0x207441,0x20745c,0x207469,0x207470,0x207463,0x20746a,0x207476,0x20747e,
+ 0x20748b,0x20749e,0x2074a7,0x2074ca,0x2074cf,0x2074d4,0x2073f1,0x2074e0,0x2074e3,0x2074e7,
+ 0x2074e9,0x2074ee,0x2074f2,0x2074f0,0x2074f1,0x2074f8,0x2074f7,0x207504,0x207503,0x207505,
+ 0x20750c,0x20750e,0x20750d,0x207515,0x207513,0x20751e,0x207526,0x20752c,0x20753c,0x207544,
+ 0x20754d,0x20754a,0x207549,0x20755b,0x207546,0x20755a,0x207569,0x207564,0x207567,0x20756b,
+ 0x20756d,0x207578,0x207576,0x207586,0x207587,0x207574,0x20758a,0x207589,0x207582,0x207594,
+ 0x20759a,0x20759d,0x2075a5,0x2075a3,0x2075c2,0x2075b3,0x2075c3,0x2075b5,0x2075bd,0x2075b8,
+ 0x2075bc,0x2075b1,0x2075cd,0x2075ca,0x2075d2,0x2075d9,0x2075e3,0x2075de,0x2075fe,0x2075ff,
+ 0x2075fc,0x207601,0x2075f0,0x2075fa,0x2075f2,0x2075f3,0x20760b,0x20760d,0x207609,0x20761f,
+ 0x207627,0x207620,0x207621,0x207622,0x207624,0x207634,0x207630,0x20763b,0x207647,0x207648,
+ 0x207646,0x20765c,0x207658,0x207661,0x207662,0x207668,0x207669,0x20766a,0x207667,0x20766c,
+ 0x207670,0x207672,0x207676,0x207678,0x20767c,0x207680,0x207683,0x207688,0x20768b,0x20768e,
+ 0x207696,0x207693,0x207699,0x20769a,0x2076b0,0x2076b4,0x2076b8,0x2076b9,0x2076ba,0x2076c2,
+ 0x2076cd,0x2076d6,0x2076d2,0x2076de,0x2076e1,0x2076e5,0x2076e7,0x2076ea,0x20862f,0x2076fb,
+ 0x207708,0x207707,0x207704,0x207729,0x207724,0x40771e,0x207725,0x207726,0x20771b,0x207737,
+ 0x207738,0x207747,0x20775a,0x207768,0x20776b,0x20775b,0x207765,0x20777f,0x20777e,0x207779,
+ 0x20778e,0x20778b,0x207791,0x2077a0,0x20779e,0x2077b0,0x2077b6,0x2077b9,0x2077bf,0x2077bc,
+ 0x2077bd,0x2077bb,0x2077c7,0x2077cd,0x2077d7,0x2077da,0x2077dc,0x2077e3,0x2077ee,0x2077fc,
+ 0x20780c,0x207812,0x207926,0x207820,0x20792a,0x207845,0x20788e,0x207874,0x207886,0x20787c,
+ 0x20789a,0x20788c,0x2078a3,0x2078b5,0x2078aa,0x2078af,0x2078d1,0x2078c6,0x2078cb,0x2078d4,
+ 0x2078be,0x2078bc,0x2078c5,0x2078ca,0x2078ec,0x2078e7,0x2078da,0x2078fd,0x2078f4,0x207907,
+ 0x207912,0x207911,0x207919,0x20792c,0x20792b,0x207940,0x207960,0x207957,0x20795f,0x20795a,
+ 0x207955,0x207953,0x20797a,0x20797f,0x20798a,0x20799d,0x2079a7,0x209f4b,0x2079aa,0x2079ae,
+ 0x2079b3,0x2079b9,0x2079ba,0x2079c9,0x2079d5,0x2079e7,0x2079ec,0x2079e1,0x2079e3,0x207a08,
+ 0x207a0d,0x207a18,0x207a19,0x207a20,0x207a1f,0x207980,0x207a31,0x207a3b,0x207a3e,0x207a37,
+ 0x207a43,0x207a57,0x207a49,0x207a61,0x207a62,0x207a69,0x209f9d,0x207a70,0x207a79,0x207a7d,
+ 0x207a88,0x207a97,0x207a95,0x207a98,0x207a96,0x207aa9,0x207ac8,0x207ab0,0x207ab6,0x207ac5,
+ 0x207ac4,0x207abf,0x209083,0x207ac7,0x207aca,0x207acd,0x207acf,0x207ad5,0x207ad3,0x207ad9,
+ 0x207ada,0x207add,0x207ae1,0x207ae2,0x207ae6,0x207aed,0x207af0,0x207b02,0x207b0f,0x207b0a,
+ 0x207b06,0x207b33,0x207b18,0x207b19,0x207b1e,0x207b35,0x207b28,0x207b36,0x207b50,0x207b7a,
+ 0x207b04,0x207b4d,0x207b0b,0x207b4c,0x207b45,0x207b75,0x207b65,0x207b74,0x207b67,0x207b70,
+ 0x207b71,0x207b6c,0x207b6e,0x207b9d,0x207b98,0x207b9f,0x207b8d,0x207b9c,0x207b9a,0x207b8b,
+ 0x207b92,0x207b8f,0x207b5d,0x207b99,0x207bcb,0x207bc1,0x207bcc,0x207bcf,0x207bb4,0x207bc6,
+ 0x207bdd,0x207be9,0x207c11,0x207c14,0x207be6,0x207be5,0x207c60,0x207c00,0x207c07,0x207c13,
+ 0x207bf3,0x207bf7,0x207c17,0x207c0d,0x207bf6,0x207c23,0x207c27,0x207c2a,0x207c1f,0x207c37,
+ 0x207c2b,0x207c3d,0x207c4c,0x207c43,0x207c54,0x207c4f,0x207c40,0x207c50,0x207c58,0x207c5f,
+ 0x207c64,0x207c56,0x207c65,0x207c6c,0x207c75,0x207c83,0x207c90,0x207ca4,0x207cad,0x207ca2,
+ 0x207cab,0x207ca1,0x207ca8,0x207cb3,0x207cb2,0x207cb1,0x207cae,0x207cb9,0x207cbd,0x207cc0,
+ 0x207cc5,0x207cc2,0x207cd8,0x207cd2,0x207cdc,0x207ce2,0x209b3b,0x207cef,0x207cf2,0x207cf4,
+ 0x207cf6,0x207cfa,0x207d06,0x207d02,0x207d1c,0x207d15,0x207d0a,0x207d45,0x207d4b,0x207d2e,
+ 0x207d32,0x207d3f,0x207d35,0x207d46,0x207d73,0x207d56,0x207d4e,0x207d72,0x207d68,0x207d6e,
+ 0x207d4f,0x207d63,0x207d93,0x207d89,0x207d5b,0x207d8f,0x207d7d,0x207d9b,0x207dba,0x207dae,
+ 0x207da3,0x207db5,0x207dc7,0x207dbd,0x207dab,0x207e3d,0x207da2,0x207daf,0x207ddc,0x207db8,
+ 0x207d9f,0x207db0,0x207dd8,0x207ddd,0x207de4,0x207dde,0x207dfb,0x207df2,0x207de1,0x207e05,
+ 0x207e0a,0x207e23,0x207e21,0x207e12,0x207e31,0x207e1f,0x207e09,0x207e0b,0x207e22,0x207e46,
+ 0x207e66,0x207e3b,0x207e35,0x207e39,0x207e43,0x207e37,0x207e32,0x207e3a,0x207e67,0x207e5d,
+ 0x207e56,0x207e5e,0x207e59,0x207e5a,0x207e79,0x207e6a,0x207e69,0x207e7c,0x207e7b,0x207e83,
+ 0x207dd5,0x207e7d,0x208fae,0x207e7f,0x207e88,0x207e89,0x207e8c,0x207e92,0x207e90,0x207e93,
+ 0x207e94,0x207e96,0x207e8e,0x207e9b,0x207e9c,0x207f38,0x207f3a,0x207f45,0x207f4c,0x207f4d,
+ 0x207f4e,0x207f50,0x207f51,0x207f55,0x207f54,0x207f58,0x207f5f,0x207f60,0x207f68,0x207f69,
+ 0x207f67,0x207f78,0x207f82,0x207f86,0x207f83,0x207f88,0x207f87,0x207f8c,0x207f94,0x207f9e,
+ 0x207f9d,0x207f9a,0x207fa3,0x207faf,0x207fb2,0x207fb9,0x207fae,0x207fb6,0x207fb8,0x208b71,
+ 0x207fc5,0x207fc6,0x207fca,0x207fd5,0x207fd4,0x207fe1,0x207fe6,0x207fe9,0x207ff3,0x207ff9,
+ 0x2098dc,0x208006,0x208004,0x20800b,0x208012,0x208018,0x208019,0x20801c,0x208021,0x208028,
+ 0x20803f,0x20803b,0x20804a,0x208046,0x208052,0x208058,0x20805a,0x20805f,0x208062,0x208068,
+ 0x208073,0x208072,0x208070,0x208076,0x208079,0x20807d,0x20807f,0x208084,0x208086,0x208085,
+ 0x20809b,0x208093,0x20809a,0x2080ad,0x205190,0x2080ac,0x2080db,0x2080e5,0x2080d9,0x2080dd,
+ 0x2080c4,0x2080da,0x2080d6,0x208109,0x2080ef,0x2080f1,0x20811b,0x208129,0x208123,0x20812f,
+ 0x20814b,0x20968b,0x208146,0x20813e,0x208153,0x208151,0x2080fc,0x208171,0x20816e,0x208165,
+ 0x208166,0x208174,0x208183,0x208188,0x20818a,0x208180,0x208182,0x2081a0,0x208195,0x2081a4,
+ 0x2081a3,0x20815f,0x208193,0x2081a9,0x2081b0,0x2081b5,0x2081be,0x2081b8,0x2081bd,0x2081c0,
+ 0x2081c2,0x2081ba,0x2081c9,0x2081cd,0x2081d1,0x2081d9,0x2081d8,0x2081c8,0x2081da,0x2081df,
+ 0x2081e0,0x2081e7,0x2081fa,0x2081fb,0x2081fe,0x208201,0x208202,0x208205,0x208207,0x20820a,
+ 0x20820d,0x208210,0x208216,0x208229,0x20822b,0x208238,0x208233,0x208240,0x208259,0x208258,
+ 0x20825d,0x20825a,0x20825f,0x208264,0x208262,0x208268,0x20826a,0x20826b,0x20822e,0x208271,
+ 0x208277,0x208278,0x20827e,0x20828d,0x208292,0x2082ab,0x20829f,0x2082bb,0x2082ac,0x2082e1,
+ 0x2082e3,0x2082df,0x2082d2,0x2082f4,0x2082f3,0x2082fa,0x208393,0x208303,0x2082fb,0x2082f9,
+ 0x2082de,0x208306,0x2082dc,0x208309,0x2082d9,0x208335,0x208334,0x208316,0x208332,0x208331,
+ 0x208340,0x208339,0x208350,0x208345,0x20832f,0x20832b,0x208317,0x208318,0x208385,0x20839a,
+ 0x2083aa,0x20839f,0x2083a2,0x208396,0x208323,0x20838e,0x208387,0x20838a,0x20837c,0x2083b5,
+ 0x208373,0x208375,0x2083a0,0x208389,0x2083a8,0x2083f4,0x208413,0x2083eb,0x2083ce,0x2083fd,
+ 0x208403,0x2083d8,0x20840b,0x2083c1,0x2083f7,0x208407,0x2083e0,0x2083f2,0x20840d,0x208422,
+ 0x208420,0x2083bd,0x208438,0x208506,0x2083fb,0x20846d,0x20842a,0x20843c,0x20855a,0x208484,
+ 0x208477,0x20846b,0x2084ad,0x20846e,0x208482,0x208469,0x208446,0x20842c,0x20846f,0x208479,
+ 0x208435,0x2084ca,0x208462,0x2084b9,0x2084bf,0x20849f,0x2084d9,0x2084cd,0x2084bb,0x2084da,
+ 0x2084d0,0x2084c1,0x2084c6,0x2084d6,0x2084a1,0x208521,0x2084ff,0x2084f4,0x208517,0x208518,
+ 0x20852c,0x20851f,0x208515,0x208514,0x2084fc,0x208540,0x208563,0x208558,0x208548,0x208541,
+ 0x208602,0x20854b,0x208555,0x208580,0x2085a4,0x208588,0x208591,0x20858a,0x2085a8,0x20856d,
+ 0x208594,0x20859b,0x2085ea,0x208587,0x20859c,0x208577,0x20857e,0x208590,0x2085c9,0x2085ba,
+ 0x2085cf,0x2085b9,0x2085d0,0x2085d5,0x2085dd,0x2085e5,0x2085dc,0x2085f9,0x20860a,0x208613,
+ 0x20860b,0x2085fe,0x2085fa,0x208606,0x208622,0x20861a,0x208630,0x20863f,0x20864d,0x204e55,
+ 0x208654,0x20865f,0x208667,0x208671,0x208693,0x2086a3,0x2086a9,0x2086aa,0x20868b,0x20868c,
+ 0x2086b6,0x2086af,0x2086c4,0x2086c6,0x2086b0,0x2086c9,0x208823,0x2086ab,0x2086d4,0x2086de,
+ 0x2086e9,0x2086ec,0x2086df,0x2086db,0x2086ef,0x208712,0x208706,0x208708,0x208700,0x208703,
+ 0x2086fb,0x208711,0x208709,0x20870d,0x2086f9,0x20870a,0x208734,0x20873f,0x208737,0x20873b,
+ 0x208725,0x208729,0x20871a,0x208760,0x20875f,0x208778,0x20874c,0x20874e,0x208774,0x208757,
+ 0x208768,0x20876e,0x208759,0x208753,0x208763,0x20876a,0x208805,0x2087a2,0x20879f,0x208782,
+ 0x2087af,0x2087cb,0x2087bd,0x2087c0,0x2087d0,0x2096d6,0x2087ab,0x2087c4,0x2087b3,0x2087c7,
+ 0x2087c6,0x2087bb,0x2087ef,0x2087f2,0x2087e0,0x20880f,0x20880d,0x2087fe,0x2087f6,0x2087f7,
+ 0x20880e,0x2087d2,0x208811,0x208816,0x208815,0x208822,0x208821,0x208831,0x208836,0x208839,
+ 0x208827,0x20883b,0x208844,0x208842,0x208852,0x208859,0x20885e,0x208862,0x20886b,0x208881,
+ 0x20887e,0x20889e,0x208875,0x20887d,0x2088b5,0x208872,0x208882,0x208897,0x208892,0x2088ae,
+ 0x208899,0x2088a2,0x20888d,0x2088a4,0x2088b0,0x2088bf,0x2088b1,0x2088c3,0x2088c4,0x2088d4,
+ 0x2088d8,0x2088d9,0x2088dd,0x2088f9,0x208902,0x2088fc,0x2088f4,0x2088e8,0x2088f2,0x208904,
+ 0x20890c,0x20890a,0x208913,0x208943,0x20891e,0x208925,0x20892a,0x20892b,0x208941,0x208944,
+ 0x20893b,0x208936,0x208938,0x20894c,0x20891d,0x208960,0x20895e,0x208966,0x208964,0x20896d,
+ 0x20896a,0x20896f,0x208974,0x208977,0x20897e,0x208983,0x208988,0x20898a,0x208993,0x208998,
+ 0x2089a1,0x2089a9,0x2089a6,0x2089ac,0x2089af,0x2089b2,0x2089ba,0x2089bd,0x2089bf,0x2089c0,
+ 0x2089da,0x2089dc,0x2089dd,0x2089e7,0x2089f4,0x2089f8,0x208a03,0x208a16,0x208a10,0x208a0c,
+ 0x208a1b,0x208a1d,0x208a25,0x208a36,0x208a41,0x208a5b,0x208a52,0x208a46,0x208a48,0x208a7c,
+ 0x208a6d,0x208a6c,0x208a62,0x208a85,0x208a82,0x208a84,0x208aa8,0x208aa1,0x208a91,0x208aa5,
+ 0x208aa6,0x208a9a,0x208aa3,0x208ac4,0x208acd,0x208ac2,0x208ada,0x208aeb,0x208af3,0x208ae7,
+ 0x208ae4,0x208af1,0x208b14,0x208ae0,0x208ae2,0x208af7,0x208ade,0x208adb,0x208b0c,0x208b07,
+ 0x208b1a,0x208ae1,0x208b16,0x208b10,0x208b17,0x208b20,0x208b33,0x2097ab,0x208b26,0x208b2b,
+ 0x208b3e,0x208b28,0x208b41,0x208b4c,0x208b4f,0x208b4e,0x208b49,0x208b56,0x208b5b,0x208b5a,
+ 0x208b6b,0x208b5f,0x208b6c,0x208b6f,0x208b74,0x208b7d,0x208b80,0x208b8c,0x208b8e,0x208b92,
+ 0x208b93,0x208b96,0x208b99,0x208b9a,0x208c3a,0x208c41,0x208c3f,0x208c48,0x208c4c,0x208c4e,
+ 0x208c50,0x208c55,0x208c62,0x208c6c,0x208c78,0x208c7a,0x208c82,0x208c89,0x208c85,0x208c8a,
+ 0x208c8d,0x208c8e,0x208c94,0x208c7c,0x208c98,0x20621d,0x208cad,0x208caa,0x208cbd,0x208cb2,
+ 0x208cb3,0x208cae,0x208cb6,0x208cc8,0x208cc1,0x208ce4,0x208ce3,0x208cda,0x208cfd,0x208cfa,
+ 0x208cfb,0x208d04,0x208d05,0x208d0a,0x208d07,0x208d0f,0x208d0d,0x208d10,0x209f4e,0x208d13,
+ 0x208ccd,0x208d14,0x208d16,0x208d67,0x208d6d,0x208d71,0x208d73,0x208d81,0x208d99,0x208dc2,
+ 0x208dbe,0x208dba,0x208dcf,0x208dda,0x208dd6,0x208dcc,0x208ddb,0x208dcb,0x208dea,0x208deb,
+ 0x208ddf,0x208de3,0x208dfc,0x208e08,0x208e09,0x208dff,0x208e1d,0x208e1e,0x208e10,0x208e1f,
+ 0x208e42,0x208e35,0x208e30,0x208e34,0x208e4a,0x208e47,0x208e49,0x208e4c,0x208e50,0x208e48,
+ 0x208e59,0x208e64,0x208e60,0x208e2a,0x208e63,0x208e55,0x208e76,0x208e72,0x208e7c,0x208e81,
+ 0x208e87,0x208e85,0x208e84,0x208e8b,0x208e8a,0x208e93,0x208e91,0x208e94,0x208e99,0x208eaa,
+ 0x208ea1,0x208eac,0x208eb0,0x208ec6,0x208eb1,0x208ebe,0x208ec5,0x208ec8,0x208ecb,0x208edb,
+ 0x208ee3,0x208efc,0x208efb,0x208eeb,0x208efe,0x208f0a,0x208f05,0x208f15,0x208f12,0x208f19,
+ 0x208f13,0x208f1c,0x208f1f,0x208f1b,0x208f0c,0x208f26,0x208f33,0x208f3b,0x208f39,0x208f45,
+ 0x208f42,0x208f3e,0x208f4c,0x208f49,0x208f46,0x208f4e,0x208f57,0x208f5c,0x208f62,0x208f63,
+ 0x208f64,0x208f9c,0x208f9f,0x208fa3,0x208fad,0x208faf,0x208fb7,0x208fda,0x208fe5,0x208fe2,
+ 0x208fea,0x208fef,0x209087,0x208ff4,0x209005,0x208ff9,0x208ffa,0x209011,0x209015,0x209021,
+ 0x20900d,0x20901e,0x209016,0x20900b,0x209027,0x209036,0x209035,0x209039,0x208ff8,0x20904f,
+ 0x209050,0x209051,0x209052,0x20900e,0x209049,0x20903e,0x209056,0x209058,0x20905e,0x209068,
+ 0x20906f,0x209076,0x2096a8,0x209072,0x209082,0x20907d,0x209081,0x209080,0x20908a,0x209089,
+ 0x20908f,0x2090a8,0x2090af,0x2090b1,0x2090b5,0x2090e2,0x2090e4,0x206248,0x2090db,0x209102,
+ 0x209112,0x209119,0x209132,0x209130,0x20914a,0x209156,0x209158,0x209163,0x209165,0x209169,
+ 0x209173,0x209172,0x20918b,0x209189,0x209182,0x2091a2,0x2091ab,0x2091af,0x2091aa,0x2091b5,
+ 0x2091b4,0x2091ba,0x2091c0,0x2091c1,0x2091c9,0x2091cb,0x2091d0,0x2091d6,0x2091df,0x2091e1,
+ 0x2091db,0x2091fc,0x2091f5,0x2091f6,0x20921e,0x2091ff,0x209214,0x20922c,0x209215,0x209211,
+ 0x20925e,0x209257,0x209245,0x209249,0x209264,0x209248,0x209295,0x20923f,0x20924b,0x209250,
+ 0x20929c,0x209296,0x209293,0x20929b,0x20925a,0x2092cf,0x2092b9,0x2092b7,0x2092e9,0x20930f,
+ 0x2092fa,0x209344,0x20932e,0x209319,0x209322,0x20931a,0x209323,0x20933a,0x209335,0x20933b,
+ 0x20935c,0x209360,0x20937c,0x20936e,0x209356,0x2093b0,0x2093ac,0x2093ad,0x209394,0x2093b9,
+ 0x2093d6,0x2093d7,0x2093e8,0x2093e5,0x2093d8,0x2093c3,0x2093dd,0x2093d0,0x2093c8,0x2093e4,
+ 0x20941a,0x209414,0x209413,0x209403,0x209407,0x209410,0x209436,0x20942b,0x209435,0x209421,
+ 0x20943a,0x209441,0x209452,0x209444,0x20945b,0x209460,0x209462,0x20945e,0x20946a,0x209229,
+ 0x209470,0x209475,0x209477,0x20947d,0x20945a,0x20947c,0x20947e,0x209481,0x20947f,0x209582,
+ 0x209587,0x20958a,0x209594,0x209596,0x209598,0x209599,0x2095a0,0x2095a8,0x2095a7,0x2095ad,
+ 0x2095bc,0x2095bb,0x2095b9,0x2095be,0x2095ca,0x206ff6,0x2095c3,0x2095cd,0x2095cc,0x2095d5,
+ 0x2095d4,0x2095d6,0x2095dc,0x2095e1,0x2095e5,0x2095e2,0x209621,0x209628,0x20962e,0x20962f,
+ 0x209642,0x20964c,0x20964f,0x20964b,0x209677,0x20965c,0x20965e,0x20965d,0x20965f,0x209666,
+ 0x209672,0x20966c,0x20968d,0x209698,0x209695,0x209697,0x2096aa,0x2096a7,0x2096b1,0x2096b2,
+ 0x2096b0,0x2096b4,0x2096b6,0x2096b8,0x2096b9,0x2096ce,0x2096cb,0x2096c9,0x2096cd,0x20894d,
+ 0x2096dc,0x20970d,0x2096d5,0x2096f9,0x209704,0x209706,0x209708,0x209713,0x20970e,0x209711,
+ 0x20970f,0x209716,0x209719,0x209724,0x20972a,0x209730,0x209739,0x20973d,0x20973e,0x209744,
+ 0x209746,0x209748,0x209742,0x209749,0x20975c,0x209760,0x209764,0x209766,0x209768,0x2052d2,
+ 0x20976b,0x209771,0x209779,0x209785,0x20977c,0x209781,0x20977a,0x209786,0x20978b,0x20978f,
+ 0x209790,0x20979c,0x2097a8,0x2097a6,0x2097a3,0x2097b3,0x2097b4,0x2097c3,0x2097c6,0x2097c8,
+ 0x2097cb,0x2097dc,0x2097ed,0x209f4f,0x2097f2,0x207adf,0x2097f6,0x2097f5,0x20980f,0x20980c,
+ 0x209838,0x209824,0x209821,0x209837,0x20983d,0x209846,0x20984f,0x20984b,0x20986b,0x20986f,
+ 0x209870,0x209871,0x209874,0x209873,0x2098aa,0x2098af,0x2098b1,0x2098b6,0x2098c4,0x2098c3,
+ 0x2098c6,0x2098e9,0x2098eb,0x209903,0x209909,0x209912,0x209914,0x209918,0x209921,0x20991d,
+ 0x20991e,0x209924,0x209920,0x20992c,0x20992e,0x20993d,0x20993e,0x209942,0x209949,0x209945,
+ 0x209950,0x20994b,0x209951,0x209952,0x20994c,0x209955,0x209997,0x209998,0x2099a5,0x2099ad,
+ 0x2099ae,0x2099bc,0x2099df,0x2099db,0x2099dd,0x2099d8,0x2099d1,0x2099ed,0x2099ee,0x2099f1,
+ 0x2099f2,0x2099fb,0x2099f8,0x209a01,0x209a0f,0x209a05,0x2099e2,0x209a19,0x209a2b,0x209a37,
+ 0x209a45,0x209a42,0x209a40,0x209a43,0x209a3e,0x209a55,0x209a4d,0x209a5b,0x209a57,0x209a5f,
+ 0x209a62,0x209a65,0x209a64,0x209a69,0x209a6b,0x209a6a,0x209aad,0x209ab0,0x209abc,0x209ac0,
+ 0x209acf,0x209ad1,0x209ad3,0x209ad4,0x209ade,0x209adf,0x209ae2,0x209ae3,0x209ae6,0x209aef,
+ 0x209aeb,0x209aee,0x209af4,0x209af1,0x209af7,0x209afb,0x209b06,0x209b18,0x209b1a,0x209b1f,
+ 0x209b22,0x209b23,0x209b25,0x209b27,0x209b28,0x209b29,0x209b2a,0x209b2e,0x209b2f,0x209b32,
+ 0x209b44,0x209b43,0x209b4f,0x209b4d,0x209b4e,0x209b51,0x209b58,0x209b74,0x209b93,0x209b83,
+ 0x209b91,0x209b96,0x209b97,0x209b9f,0x209ba0,0x209ba8,0x209bb4,0x209bc0,0x209bca,0x209bb9,
+ 0x209bc6,0x209bcf,0x209bd1,0x209bd2,0x209be3,0x209be2,0x209be4,0x209bd4,0x209be1,0x209c3a,
+ 0x209bf2,0x209bf1,0x209bf0,0x209c15,0x209c14,0x209c09,0x209c13,0x209c0c,0x209c06,0x209c08,
+ 0x209c12,0x209c0a,0x209c04,0x209c2e,0x209c1b,0x209c25,0x209c24,0x209c21,0x209c30,0x209c47,
+ 0x209c32,0x209c46,0x209c3e,0x209c5a,0x209c60,0x209c67,0x209c76,0x209c78,0x209ce7,0x209cec,
+ 0x209cf0,0x209d09,0x209d08,0x209ceb,0x209d03,0x209d06,0x209d2a,0x209d26,0x209daf,0x209d23,
+ 0x209d1f,0x209d44,0x209d15,0x209d12,0x209d41,0x209d3f,0x209d3e,0x209d46,0x209d48,0x209d5d,
+ 0x209d5e,0x209d64,0x209d51,0x209d50,0x209d59,0x209d72,0x209d89,0x209d87,0x209dab,0x209d6f,
+ 0x209d7a,0x209d9a,0x209da4,0x209da9,0x209db2,0x209dc4,0x209dc1,0x209dbb,0x209db8,0x209dba,
+ 0x209dc6,0x209dcf,0x209dc2,0x209dd9,0x209dd3,0x209df8,0x209de6,0x209ded,0x209def,0x209dfd,
+ 0x209e1a,0x209e1b,0x209e1e,0x209e75,0x209e79,0x209e7d,0x209e81,0x209e88,0x209e8b,0x209e8c,
+ 0x209e92,0x209e95,0x209e91,0x209e9d,0x209ea5,0x209ea9,0x209eb8,0x209eaa,0x209ead,0x209761,
+ 0x209ecc,0x209ece,0x209ecf,0x209ed0,0x209ed4,0x209edc,0x209ede,0x209edd,0x209ee0,0x209ee5,
+ 0x209ee8,0x209eef,0x209ef4,0x209ef6,0x209ef7,0x209ef9,0x209efb,0x209efc,0x209efd,0x209f07,
+ 0x209f08,0x2076b7,0x209f15,0x209f21,0x209f2c,0x209f3e,0x209f4a,0x209f52,0x209f54,0x209f63,
+ 0x209f5f,0x209f60,0x209f61,0x209f66,0x209f67,0x209f6c,0x209f6a,0x209f77,0x209f72,0x209f76,
+ 0x209f95,0x209f9c,0x209fa0,0x20582f,0x2069c7,0x209059,0x207464,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,0x20555e,0x4098f4,0x406ea2,0x409c2f,0x406deb,0x408fc2,0x406b1d,0x4053a9,
+ 0x228cdd,0x405642,0x40990c,0x207130,0x408956,0x209dd7,0x408fe6,0x406062,0x4062d0,0x406666,
+ 0x40559d,0x40845b,0x409784,0x205699,0x203d4e,0x407ff0,0x407feb,0x405fbd,0x407947,0x204fe0,
+ 0x60537f,0x4050c5,0x208ec0,0x4055b0,0x206adb,0x405c51,0x409774,0x407941,0x406167,0x225874,
+ 0x207e6b,0x208346,0x228ef6,0x405026,0x405acc,0x406372,0x209e7c,0x408afa,0x405df7,0x20663b,
+ 0x406e9d,0x209eb4,0x409d60,0x407511,0x4091c7,0x40698a,0x206805,0x4085a9,0x409bd6,0x409306,
+ 0x4073ca,0x4053f1,0x205c62,0x40906e,0x406753,0x40707c,0x207e61,0x40914b,0x4066d9,0x206e1a,
+ 0x4085af,0x4085f7,0x4054e8,0x405ee0,0x4068a2,0x208523,0x2091ac,0x409798,0x408755,0x409771,
+ 0x409017,0x407fe0,0x40647a,0x40901d,0x2087ec,0x4064b0,0x406813,0x40714e,0x40717d,0x408a6e,
+ 0x40564c,0x409061,0x405275,0x206414,0x407626,0x40905c,0x209a52,0x40817f,0x409edb,0x405544,
+ 0x406fef,0x207422,0x4086f8,0x205dfd,0x408fbf,0x4068da,0x409c48,0x406a3d,0x207c1e,0x408a3b,
+ 0x407026,0x4051cb,0x406357,0x4069cc,0x40939a,0x40585a,0x206451,0x40912d,0x4064e2,0x406eba,
+ 0x205861,0x20985a,0x405835,0x405c60,0x4083df,0x408ced,0x405858,0x2079b1,0x409d07,0x207006,
+ 0x40701e,0x405678,0x409041,0x409813,0x4090a3,0x408b0e,0x407058,0x406962,0x4079b0,0x2056ca,
+ 0x40724c,0x409019,0x4079e4,0x20525d,0x407bb8,0x206f51,0x2091b1,0x40633d,0x406249,0x406a0b,
+ 0x4067ca,0x407a17,0x40903c,0x405a9b,0x408b2c,0x405edf,0x407015,0x20983b,0x40853d,0x4077a5,
+ 0x405a29,0x405e96,0x406ce1,0x4084ec,0x209830,0x409c52,0x209eb5,0x405132,0x409905,0x407c7e,
+ 0x409453,0x406108,0x407652,0x407337,0x407194,0x408000,0x20840a,0x40907c,0x206f23,0x207149,
+ 0x2084ee,0x406994,0x20881f,0x205154,0x405189,0x205195,0x4051a4,0x405539,0x405533,0x4055e4,
+ 0x405632,0x4056a5,0x40580b,0x405abe,0x221a1a,0x205c5b,0x405e64,0x406097,0x406369,0x406406,
+ 0x206522,0x406583,0x4067a6,0x2067fa,0x40689b,0x20688e,0x406e6e,0x2243d0,0x207228,0x4073ce,
+ 0x407504,0x40750d,0x407515,0x407693,0x40787c,0x407a31,0x409f9d,0x407b99,0x407c90,0x407cae,
+ 0x407d9b,0x407dae,0x407d9f,0x407fd4,0x40822e,0x40828d,0x4082d2,0x408323,0x408375,0x408517,
+ 0x20853e,0x408782,0x4087d2,0x40890a,0x4089af,0x408ade,0x408b41,0x408dda,0x408e09,0x408f13,
+ 0x408fea,0x408fe9,0x409058,0x406248,0x4091c1,0x4095bb,0x207762,0x409724,0x409760,0x40976d,
+ 0x409824,0x409b2e,0x409b97,0x409bf2,0x409eaa,0x409f9c,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ 0x4082a6,0x408328,0x205653,0x6053a9,0x407259,0x406c72,0x407b08,0x409957,0x4062f3,0x409910,
+ 0x60976d,0x60717d,0x407a7f,0x407bad,0x4063c3,0x6083df,0x407962,0x4053db,0x407bc7,0x408fc4,
+ 0x407c3e,0x4050ca,0x405315,0x4055a9,0x4056ae,0x405819,0x40591b,0x405c28,0x405ed0,0x405ecf,
+ 0x406241,0x4066c1,0x406c08,0x406e23,0x406eec,0x407a97,0x407bdd,0x407fe9,0x408422,0x408759,
+ 0x40880e,0x6087d2,0x409a19,0x409ead,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,0x409022,0x408fbb,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,0x2051dc,0x207199,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,0x207e8a,0x20891c,
+ 0x209348,0x209288,0x2084dc,0x204fc9,0x2070bb,0x206631,0x2068c8,0x2092f9,0x2066fb,0x205f45,
+ 0x204e28,0x204ee1,0x204efc,0x204f00,0x204f03,0x204f39,0x204f56,0x204f92,0x204f8a,0x204f9a,
+ 0x204f94,0x204fcd,0x205040,0x205022,0x204fff,0x20501e,0x205046,0x205070,0x205042,0x205094,
+ 0x2050f4,0x2050d8,0x20514a,0x205164,0x20519d,0x2051be,0x2051ec,0x205215,0x20529c,0x2052a6,
+ 0x2052c0,0x2052db,0x205300,0x405307,0x205324,0x205372,0x205393,0x2053b2,0x2053dd,0x20fa0e,
+ 0x20549c,0x20548a,0x2054a9,0x2054ff,0x205586,0x205759,0x205765,0x2057ac,0x2057c8,0x2057c7,
+ 0x20fa0f,0x60585a,0x20589e,0x2058b2,0x20590b,0x205953,0x20595b,0x20595d,0x205963,0x2059a4,
+ 0x2059ba,0x205b56,0x205bc0,0x20752f,0x205bd8,0x405bdb,0x205c1e,0x205ca6,0x205cba,0x205cf5,
+ 0x205d27,0x205d53,0x40fa11,0x205d42,0x205d6d,0x205db8,0x205db9,0x205dd0,0x205f21,0x205f34,
+ 0x205f67,0x205fb7,0x205fde,0x20605d,0x206085,0x20608a,0x2060de,0x2060d5,0x206120,0x2060f2,
+ 0x206111,0x206137,0x206130,0x206198,0x206213,0x2062a6,0x2063f5,0x206460,0x20649d,0x2064ce,
+ 0x20654e,0x206600,0x206615,0x206609,0x20662e,0x40661e,0x206624,0x206665,0x206657,0x206659,
+ 0x206674,0x206673,0x206699,0x2066a0,0x2066b2,0x2066bf,0x2066fa,0x20670e,0x606717,0x206766,
+ 0x2067bb,0x406852,0x2067c0,0x406801,0x206844,0x2068cf,0x20fa13,0x206968,0x20fa14,0x206998,
+ 0x2069e2,0x206a30,0x206a6b,0x206a46,0x206a73,0x206a7e,0x206ae2,0x206ae4,0x206bd6,0x206c3f,
+ 0x206c5c,0x206c86,0x206c6f,0x206cda,0x206d04,0x206d87,0x206d6f,0x206d96,0x206dac,0x206dcf,
+ 0x206df8,0x206df2,0x206dfc,0x206e39,0x206e5c,0x206e27,0x206e3c,0x206ebf,0x206f88,0x206fb5,
+ 0x206ff5,0x207005,0x207007,0x207028,0x207085,0x2070ab,0x20710f,0x207104,0x20715c,0x207146,
+ 0x207147,0xa051de,0x2071c1,0x2071fe,0x2072b1,0x2072be,0x207324,0x20732a,0x207377,0x2073bd,
+ 0x2073c9,0x2073d6,0x2073e3,0x2073d2,0x207407,0x2073f5,0x207426,0x20742a,0x207429,0x20742e,
+ 0x407462,0x207489,0x20749f,0x207501,0x20756f,0x207682,0x20769c,0x20769e,0x20769b,0x2076a6,
+ 0x4076ca,0x207746,0x2052af,0x207821,0x20784e,0x207864,0x20787a,0x207930,0x40793c,0x20795e,
+ 0x207965,0x207994,0x40798f,0x20799b,0x207ad1,0x207ae7,0x409756,0x207aeb,0x207b9e,0x207cbe,
+ 0x207d48,0x407d5c,0x207db7,0x207da0,0x207dd6,0x207e52,0x207f47,0x207fa1,0x207fbd,0x208301,
+ 0x208362,0x20837f,0x2083c7,0x2083f6,0x208448,0x2084b4,0x208553,0x208559,0x20856b,0x20fa1f,
+ 0x2085b0,0x408612,0x20fa21,0x208807,0x2088f5,0x208a12,0x208a37,0x208a79,0x208aa7,0x208abe,
+ 0x208adf,0x208af8,0x208af6,0x208b53,0x208b7f,0x208cf0,0x208cf4,0x208d12,0x208d76,0x20fa23,
+ 0x208ecf,0x40fa24,0x609038,0x209067,0x2090de,0x2090fd,0x209115,0x209127,0x2091da,0x2091d7,
+ 0x2091de,0x2091ed,0x2091ee,0x2091e4,0x2091e5,0x209206,0x209210,0x20920a,0x20923a,0x209240,
+ 0x20923c,0x20924e,0x209259,0x209251,0x209239,0x209267,0x2092a7,0x209277,0x209278,0x2092e7,
+ 0x2092d7,0x2092d9,0x2092d0,0x20fa27,0x2092d5,0x2092e0,0x2092d3,0x209325,0x209321,0x2092fb,
+ 0x20fa28,0x20931e,0x2092ff,0x20931d,0x209302,0x209370,0x209357,0x2093a4,0x2093c6,0x2093de,
+ 0x2093f8,0x209431,0x209445,0x209448,0x209592,0x609686,0x20fa29,0x20969d,0x2096af,0x209733,
+ 0x20973b,0x209743,0x20974d,0x20974f,0x209751,0x409755,0x209857,0x209865,0x2098ef,0x4098fc,
+ 0x209927,0x409928,0x20999e,0x209a4e,0x209ad9,0x209adc,0x209b75,0x209b72,0x209b8f,0x209bb1,
+ 0x209bbb,0x209c00,0x209d70,0x209d6b,0x209db4,0x209e19,0x209ed1,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,0x606ce8,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,0x409038,
+ 0x208b01,0x207de3,0x209ec3,0x206eab,0x20798d,0x206094,0x206d77,0x406168,0x2069ea,0x206e34,
+ 0x408910,0x406f22,0x405668,0x2065e2,0x207948,0x20865b,0x4097ff,0x4052e4,0x208b39,0x2063ed,
+ 0x2064ca,0x20784f,0x207a40,0x206bba,0x407949,0x408996,0x20716e,0x40793e,0x408005,0x4081ed,
+ 0x20795d,0x406691,0x207f72,0x206d89,0x2072c0,0x40614e,0x20771e,0x407bc0,0x407956,0x4050e7,
+ 0x405c64,0x205de2,0x20618e,0x408d08,0x20537d,0x205606,0x408457,0x205fb5,0x4061f2,0x4093ae,
+ 0x40798e,0x409b2d,0x407a81,0x2096e3,0x206885,0x407e41,0x20665a,0x205351,0x207891,0x208cd3,
+ 0x20654f,0x404fae,0x404f75,0x405840,0x2052c9,0x206b65,0x2058a8,0x206bcf,0x40514d,0x20623e,
+ 0x207950,0x206b04,0x409686,0x20865c,0x206dda,0x20985e,0x2066c6,0x206b77,0x207df4,0x20934a,
+ 0x605eca,0x209304,0x406982,0x4051b4,0x40634c,0x4086db,0x409089,0x609022,0x405049,0x407def,
+ 0x409055,0x8053a9,0x60990c,0x40885b,0x405ef6,0x606cbf,0x40925b,0x407fc1,0x6082bd,0x4096c5,
+ 0x405bb3,0x606168,0x606982,0x406bbb,0x406562,0x408cab,0x405dcc,0x409811,0x405e30,0x408ecc,
+ 0x407aae,0x405747,0x405091,0x407a74,0x405065,0x405efa,0x409237,0x406a8e,0x404ea4,0x40516c,
+ 0x4066f4,0x406821,0x40786c,0x407d5e,0x408003,0x408cfc,0x40964d,0x4062f7,0x407f6a,0x404f7f,
+ 0x4053f2,0x4059c9,0x408b1d,0x4090aa,0x4053ce,0x408f2f,0x4067d4,0x4077ac,0x40821c,0x40696f,
+ 0x40677e,0x408a1f,0x404e08,0x4057f4,0x40690d,0x408077,0x4089aa,0x409042,0x40636e,0x406442,
+ 0x408239,0x407dcf,0x408061,0x4050cf,0x408a95,0x406065,0x405146,0x40773a,0x408074,0x408df3,
+ 0x405ead,0x405ef7,0x408247,0x406843,0x409003,0x406d3e,0x406392,0x408f29,0x4073ed,0x409812,
+ 0x4060b2,0x606249,0x406590,0x407dcb,0x408ab9,0x408ca7,0x407236,0x40847a,0x405206,0x405674,
+ 0x4061a4,0x407c89,0x407d1b,0x4096f0,0x60853d,0x404fbf,0x406367,0x4076c6,0x40685d,0x408108,
+ 0x408036,0x407ffc,0x40540f,0x4096a3,0x409e9f,0x409e97,0x40806f,0x40807e,0x406e7e,0x405085,
+ 0x405193,0x4051db,0x22090e,0x405340,0x4096d9,0x6055a9,0x4056c1,0x40570d,0x4058ab,0x4059da,
+ 0x405a36,0x605abe,0x405d4e,0x405d87,0x405dc9,0x405dd3,0x405f2d,0x405f98,0x4060d8,0x40613d,
+ 0x4061fe,0x406268,0x4062cf,0x40651d,0x40640f,0x4064f2,0x40655d,0x40665f,0x4067a9,0x4067e7,
+ 0x40696b,0x406930,0x4069a7,0x406a44,0x406a90,0x606c08,0x406c13,0x606e23,0x406f11,0x406efe,
+ 0x406f3e,0x4071ff,0x4073e5,0x407432,0x40745f,0x4074e0,0x40750c,0x407672,0x40792a,0x4078d4,
+ 0x4079ba,0x407a19,0x407a95,0x407cf2,0x407d73,0x407ddd,0x407e35,0x407fae,0x407fe1,0x40805a,
+ 0x40805f,0x408073,0x408070,0x408076,0x408153,0x40818a,0x4081b5,0x4081cd,0x4083f2,0x408555,
+ 0x4085d5,0x40871a,0x408836,0x40889e,0x4088d8,0x4088f4,0x40892b,0x40893b,0x40896a,0x40896f,
+ 0x408a1d,0x408d05,0x408d0f,0x409f4e,0x408e91,0x408ea1,0x409052,0x40900e,0x409130,0x409156,
+ 0x409158,0x409165,0x409173,0x409172,0x4091a2,0x4091af,0x4091aa,0x4091b4,0x4091ba,0x409477,
+ 0x409698,0x40973d,0x609760,0x609771,0x40980c,0x409873,0x4098c3,0x409a45,0x409b4d,0x409b58,
+ 0x409bc6,0x409be1,0x409bf1,0x409d48,0x409dcf,0x409f08,0x406271,0x406697,0x40610f,0x408863,
+ 0x609055,0x40907a,0x4078ef,0x208c9f,0x4096e8,0x226951,0xa053a9,0x4074dc,0x40904b,0x80990c,
+ 0x22b7d8,0x2092b3,0x2095b1,0x605ef6,0x4063f4,0x206cbf,0x407159,0x409060,0x60925b,0x4065bc,
+ 0x405f80,0x607fc1,0x405378,0x4097f3,0x405316,0x4082b1,0x4083d3,0x408ca8,0x40904e,0x2082bd,
+ 0x6096c5,0x409913,0x405efb,0x407070,0x605bb3,0x806168,0xa06168,0xc06168,0x4069ea,0x806982,
+ 0x20676e,0x2089d2,0x409694,0x205272,0x408f44,0x40938c,0x4082c5,0x405bd2,0x4074b0,0x407de9,
+ 0x226222,0x409084,0x409592,0x4097d3,0x408218,0x405371,0x403402,0x203402,0x603402,0x405e7e,
+ 0x2065e3,0x40671f,0x406a5f,0x408d77,0x4098e2,0x220bb7,0x4055ab,0x408650,0x409006,0x4053ca,
+ 0x405438,0x406025,0x407d1a,0x405de8,0x4062d2,0x408ddd,0x229d4b,0x429d4b,0x20537f,0x205f3a,
+ 0x406050,0x4069c1,0x42363a,0x22b78e,0x4090f7,0x6097ff,0x609957,0x406681,0x40738b,0x408fd1,
+ 0x204ff1,0x4077e9,0x405177,0x40865e,0x407a7a,0x409047,0x606adb,0x405553,0x405951,0x406075,
+ 0x606167,0x408fce,0x605091,0x406f54,0x607a74,0x406708,0x40821f,0x40517c,0x405238,0x4061b2,
+ 0x206743,0x4080a9,0x408b19,0x409063,0x220a64,0x208a01,0x206236,0x4096c7,0x409867,0x205433,
+ 0x205a1b,0x408aa4,0x405de5,0x40614c,0x206285,0x4063a7,0x4069cb,0x406d69,0x406e2f,0x408015,
+ 0x408154,0x408352,0x408b1b,0x608cfc,0x20543f,0x409177,0x408170,0x607511,0x408fbc,0x22b746,
+ 0x409396,0x22b777,0x405f69,0x4063a1,0x206b72,0x4083dc,0x6051b4,0x4054b2,0x40524a,0x207522,
+ 0x204b38,0x4059ff,0x6059ff,0x205dff,0x408aee,0x608aee,0x408cc7,0x608cc7,0x406b21,0x606b21,
+ 0x406ecb,0x2073ba,0x220b9f,0x406368,0x40659c,0x6090aa,0x2052fa,0x607235,0x207235,0x40914c,
+ 0x405f31,0x404e3b,0x4053d7,0x406388,0x205468,0x407d42,0x407fd2,0x408846,0x409031,0x404f4f,
+ 0x408853,0x408ff0,0x405de1,0x409075,0x609075,0x406240,0x4066f8,0x405973,0x4052dd,0x405546,
+ 0x405bb5,0x205c06,0x405c0f,0x22d544,0x205c19,0x406d88,0x40785d,0x408096,0x22000b,0x205b82,
+ 0x2057ce,0x4060c5,0x6057f4,0x4098fe,0x60690d,0x406b96,0x4098df,0x2098e0,0x22967f,0x20378d,
+ 0x404fb5,0x2038fa,0x406d78,0x40771f,0x409032,0x204ebb,0x2201a2,0x405203,0x405c0b,0x408a0a,
+ 0x608a0a,0x408fc5,0x22e569,0x609042,0x20351f,0x22b751,0x406210,0x4076db,0x408056,0x208980,
+ 0x408aa0,0x408acb,0x40975c,0x60975c,0x207a05,0x408106,0x4096bb,0x407c4d,0x607bc0,0x208aaa,
+ 0x4096ea,0x207d55,0x406247,0x206f98,0x407fa1,0x608239,0x409078,0x409077,0x40524d,0x405168,
+ 0x406383,0x2063f7,0x207626,0x408d70,0x409001,0x40906d,0x409020,0x227fb7,0x40901f,0x408cca,
+ 0x405c0a,0x605c0a,0x4059a5,0x223cfe,0x409000,0x40902e,0x40968a,0x409bdb,0x405927,0x203427,
+ 0x407027,0x409054,0x20812b,0x404e39,0x406b4e,0x4070ad,0x608a95,0x406696,0x405024,0x407f6e,
+ 0x407bc9,0x225ad7,0x407b51,0x409010,0x4067f1,0x406ce8,0x4099d0,0x405f6b,0x405fb5,0x6061f2,
+ 0x40671d,0x206f6e,0x408abf,0x4076f4,0x406715,0x606715,0x40589c,0x408ffd,0x40901a,0x40576a,
+ 0x4091e3,0x405448,0x405e1d,0x407a0b,0x407684,0x409069,0x408fed,0x406dfb,0x40514e,0x409014,
+ 0x40783a,0x205721,0x22123d,0x2051ac,0x405510,0x207cd6,0x4085e4,0x408b04,0x609003,0x40900f,
+ 0x409a30,0x405c0e,0x409053,0x20541e,0x203b88,0x205167,0x408089,0x404e73,0x405fcd,0x408a8d,
+ 0x205be7,0x407d0d,0x408987,0x606d3e,0x4080ba,0x40535a,0x408584,0x408feb,0x407e1b,0x408087,
+ 0x204e37,0x406f51,0x4091b1,0x404f34,0x405224,0x40534a,0x405e06,0x407554,0x406669,0x408543,
+ 0x40907f,0x405fae,0x409f3b,0x405339,0x224d14,0x205f65,0x2059ec,0x4059ec,0x408a55,0x205e99,
+ 0x4075c5,0x405a66,0x406577,0x406d6e,0x408ca0,0x608ca0,0x40670d,0x408986,0x404e19,0x405e63,
+ 0x405e73,0x405f0a,0x408511,0x40504f,0x407de8,0x408fd4,0x40904d,0x407c3f,0x405305,0x405d29,
+ 0x4062b1,0x40670b,0x407832,0x407e2b,0x4080de,0x40840c,0x4090a6,0x6090a6,0x4098fd,0x409d6c,
+ 0x404ea1,0x405e3d,0x405fd8,0x405fd9,0x40623f,0x40671b,0x60671b,0x405192,0x406469,0x407ffb,
+ 0x4051e1,0x4078e8,0x409b54,0x409ebb,0x4069d9,0x60685d,0x203468,0x209fb4,0x407e6d,0x409ebf,
+ 0x608108,0x40660e,0x4076df,0x408ff7,0x405984,0x2052d0,0x4076f2,0x408017,0x40623b,0x407d0b,
+ 0x2095e8,0x407d04,0x408e8d,0x22b789,0x60687a,0x206801,0x406109,0x208aed,0x408f38,0x4052c7,
+ 0x406709,0x407336,0x607336,0x607337,0x22567f,0x40904a,0x4066dc,0x207f8a,0x408981,0x40990a,
+ 0x407fcc,0x607ffc,0x208eb6,0x40862d,0x407387,0x409f8d,0x609f8d,0x4065c5,0x209fc4,0x4071d0,
+ 0x6096a3,0x409c57,0x609e9f,0x207c7b,0x205ec9,0x406190,0x209023,0x806717,0x208002,0x2266b0,
+ 0x6050ca,0x40511a,0x605154,0x605195,0x220628,0x40528d,0x4052d7,0x22008a,0x220984,0x20353e,
+ 0x4053df,0x4066fc,0x605533,0x6055e4,0x205455,0x4056c0,0x205939,0x405a1c,0x405ac2,0x205b76,
+ 0x405bc3,0x205c14,0x2037e2,0x205ce6,0x405e54,0x204e48,0x405ee3,0x606097,0x2062d4,0x4062cc,
+ 0x40641c,0x4063c6,0x406428,0x226999,0x20631b,0x60665f,0x80665f,0x206663,0x4066f5,0x2233cc,
+ 0x40689d,0x40688d,0x2069f6,0x206986,0x22a9e6,0x405be8,0x4069bb,0x206bcc,0x606f11,0x206e17,
+ 0x406f98,0x406caa,0x206caa,0x40701b,0x407162,0x40723b,0x204e2c,0x40731c,0x4074ca,0x2074ef,
+ 0x207575,0x2075ec,0x20764e,0x203fb1,0x20776a,0x2077a9,0x407940,0x209fc6,0x607953,0x409f4b,
+ 0x4079ae,0x409083,0x207b53,0x22b7bd,0x407c14,0x204264,0x407c50,0x407c58,0x407d46,0x407d63,
+ 0x407e22,0x607e22,0x207e48,0x607e35,0x407e43,0x407e8c,0x22e278,0x22053f,0x22626a,0x426270,
+ 0x407fc5,0x407fc6,0x607fe9,0x208141,0x204453,0x408258,0x208279,0x608279,0x408279,0x4082e3,
+ 0x205179,0x20835a,0x408420,0x4083bd,0x4084f4,0x204525,0x408587,0x2085f4,0x2200b0,0x408737,
+ 0x40873b,0x408805,0x4087bd,0x20867d,0x608836,0x20342e,0x2088c6,0x4089bd,0x408adb,0x408b3e,
+ 0x408b5a,0x408d73,0x408d99,0x2047e6,0x408e34,0x22e6ea,0x408fef,0x409087,0x408ffa,0x40901e,
+ 0x409035,0x409050,0x208fc8,0x409081,0x40908a,0x60908a,0x80908a,0xa0908a,0xc0908a,0xe0908a,
+ 0x609089,0x809089,0xa09089,0xc09089,0xe09089,0x1009089,0x1209089,0x1409089,0x1609089,0x1809089,
+ 0x1a09089,0x1c09089,0x228987,0x4093dd,0x4095bc,0x228e17,0x4096b2,0x409759,0x209839,0x4098eb,
+ 0x409903,0x409909,0x409945,0x609945,0x40994b,0x209a08,0x409a5f,0x409a65,0x409aef,0x409b18,
+ 0x209bdf,0x409d09,0x409d08,0x409ea5,0x409ecc,0x609f08,0x409f4a,0x22b81a,0x409f67,0x42a61a,
+ 0x4242ee,0x2242ee,0x40891c,0x4068c8,0x4066fb,0x405f45,0x405300,0x205389,0x405953,0x20fa11,
+ 0x206852,0x406a73,0x223cbe,0x220611,0x408a12,0x204e04,0x204e05,0x204e1f,0x204e2b,0x204e2f,
+ 0x204e30,0x204e40,0x204e41,0x204e44,0x204e5a,0x204e7f,0x204e8d,0x204e96,0x204eb9,0x204ed0,
+ 0x204ee0,0x204efd,0x204eff,0x204f0b,0x204f15,0x204f60,0x204f3b,0x204f49,0x204f54,0x204f7a,
+ 0x204f7d,0x204f7e,0x204f97,0x204fbe,0x204fcf,0x204ffd,0x205000,0x205001,0x205010,0x20501b,
+ 0x205027,0x20502e,0x205057,0x205066,0x20506a,0x20503b,0x20508f,0x205096,0x20509c,0x2050cc,
+ 0x2050e6,0x2050e9,0x2050ef,0x205108,0x20510b,0x205110,0x20511b,0x20511e,0x20515f,0x2051a1,
+ 0x2051bc,0x6051de,0x2051ee,0x2051f4,0x205201,0x205202,0x205213,0x205249,0x205261,0x205266,
+ 0x205293,0x2052c8,0x2052f0,0x20530a,0x20530b,0x20533e,0x20534c,0x20534b,0x205361,0x20536c,
+ 0x2053ab,0x2053da,0x2053e6,0x2053f5,0x205427,0x20544d,0x205466,0x20546b,0x205474,0x20548d,
+ 0x205496,0x2054a1,0x2054ad,0x2054b9,0x2054bf,0x2054c6,0x2054cd,0x20550e,0x20552b,0x205535,
+ 0x20554a,0x205560,0x405561,0x205588,0x20558e,0x205608,0x20560e,0x20560f,0x205637,0x20563f,
+ 0x205649,0x20564b,0x20564f,0x205666,0x205669,0x20566f,0x205671,0x205672,0x205695,0x20569a,
+ 0x2056ac,0x2056ad,0x2056b1,0x2056c9,0x2056dd,0x2056e4,0x20570a,0x205715,0x205723,0x20572f,
+ 0x205733,0x205734,0x20574c,0x205770,0x20578c,0x20579c,0x2057b8,0x2057e6,0x2057ed,0x2057f5,
+ 0x2057f6,0x2057ff,0x205809,0x205820,0x205832,0x20587c,0x205880,0x2058a9,0x2058ce,0x2058d0,
+ 0x2058d4,0x2058da,0x2058e9,0x20590c,0x205924,0x20592f,0x205961,0x20596d,0x2059ca,0x2059d2,
+ 0x2059dd,0x2059e3,0x2059e4,0x205a04,0x205a0c,0x205a23,0x205a47,0x205a55,0x205a63,0x205a6d,
+ 0x205a7e,0x205a9e,0x205aa7,0x205aac,0x205ab3,0x205ae0,0x205b00,0x205b19,0x205b25,0x205b2d,
+ 0x205b41,0x205b7c,0x205b7e,0x205b7f,0x205b8a,0x205c23,0x205c2b,0x205c30,0x205c63,0x205c69,
+ 0x205c7c,0x205ccb,0x205cd2,0x205cf4,0x205d24,0x205d26,0x205d43,0x205d46,0x205d4a,0x205d92,
+ 0x205d94,0x205d99,0x205da0,0x205dd8,0x205de0,0x205df8,0x205e00,0x205e12,0x205e14,0x205e15,
+ 0x205e18,0x205e2e,0x205e58,0x205e6b,0x205e6c,0x205ea8,0x205eaa,0x205ebe,0x205ebf,0x405ecb,
+ 0x205ed2,0x205f07,0x205f0e,0x205f1c,0x205f1d,0x205f22,0x205f28,0x205f36,0x205f3b,0x205f40,
+ 0x205f50,0x205f58,0x205f64,0x205f89,0x205f9c,0x205fa7,0x205fa4,0x205faf,0x205fb8,0x205fc4,
+ 0x205fc9,0x205fe1,0x205fe9,0x205fed,0x205ffc,0x206017,0x20601a,0x206033,0x206061,0x20607f,
+ 0x20609e,0x2060a4,0x2060b0,0x2060cb,0x2060db,0x2060f8,0x206112,0x206113,0x206114,0x20611c,
+ 0x20617c,0x20618d,0x20619f,0x2061a8,0x2061c2,0x2061df,0x206215,0x206229,0x206243,0x206246,
+ 0x20624c,0x206251,0x206256,0x2062c4,0x2062fc,0x20630a,0x20630d,0x206318,0x206339,0x206342,
+ 0x206343,0x206365,0x206374,0x20637d,0x206384,0x206387,0x206390,0x20639e,0x2063d1,0x2063dc,
+ 0x206409,0x206410,0x206422,0x206454,0x20645b,0x20646d,0x20647b,0x2064be,0x2064bf,0x2064e5,
+ 0x2064f7,0x2064fb,0x206504,0x206516,0x206519,0x206547,0x206567,0x206581,0x206585,0x2065c2,
+ 0x2065f0,0x2065f2,0x20662c,0x20664c,0x20665b,0x20665c,0x206661,0x20666b,0x406677,0x2066a4,
+ 0x2066c8,0x2066ec,0x206705,0x206713,0x206733,0x206748,0x20674c,0x206776,0x20677b,0x2067b0,
+ 0x2067b2,0x2067f9,0x2067d7,0x2067d9,0x2067f0,0x20682c,0x206830,0x206831,0x20685b,0x206872,
+ 0x206875,0x20687a,0x206884,0x2068a5,0x2068b2,0x2068d0,0x2068d6,0x2068e8,0x2068ed,0x2068f0,
+ 0x2068f1,0x2068fc,0x206911,0x206913,0x206935,0x20693b,0x206957,0x206963,0x206972,0x20697f,
+ 0x206980,0x2069a6,0x2069ad,0x2069b7,0x2069d6,0x2069d7,0x206a01,0x206a0f,0x206a15,0x206a28,
+ 0x206a34,0x206a3e,0x206a45,0x206a50,0x206a51,0x206a56,0x206a5b,0x206a83,0x206a89,0x206a91,
+ 0x206a9d,0x206a9e,0x206a9f,0x206adc,0x206ae7,0x206aec,0x206b1e,0x206b24,0x206b35,0x206b46,
+ 0x206b56,0x206b60,0x206b82,0x206bbe,0x206be1,0x206bf1,0x206c10,0x206c33,0x206c35,0x406c3a,
+ 0x206c59,0x206c76,0x206c7b,0x206c85,0x206c95,0x206c9c,0x206cd0,0x206cd4,0x206cd6,0x206ce0,
+ 0x206ceb,0x206cec,0x206cee,0x206d0a,0x206d0e,0x206d11,0x206d2e,0x206d57,0x206d5e,0x206d65,
+ 0x206d82,0x206dbf,0x206dc4,0x206dca,0x206dd6,0x206de9,0x206e22,0x206e51,0x206ec7,0x206eca,
+ 0x206ece,0x206efd,0x206f1a,0x206f2a,0x206f2f,0x206f33,0x206f5a,0x206f5e,0x206f62,0x206f7d,
+ 0x206f8b,0x206f8d,0x206f92,0x206f94,0x206f9a,0x206fa7,0x206fa8,0x206fb6,0x206fda,0x206fde,
+ 0x406ff9,0x207039,0x20703c,0x40704a,0x207054,0x20705d,0x20705e,0x207064,0x20706c,0x20707e,
+ 0x207081,0x207095,0x2070b7,0x2070d3,0x2070d4,0x2070d8,0x2070dc,0x207107,0x207120,0x207131,
+ 0x20714a,0x207152,0x207160,0x207179,0x207192,0x4071b3,0x2071cb,0x2071d3,0x2071d6,0x207200,
+ 0x20721d,0x20722b,0x207238,0x207241,0x207253,0x207255,0x207256,0x20725c,0x20728d,0x2072ad,
+ 0x2072b4,0x2072c7,0x2072fb,0x207304,0x207305,0x207328,0x207331,0x207343,0x20736c,0x20737c,
+ 0x207383,0x207385,0x207386,0x207395,0x20739e,0x20739f,0x2073a0,0x2073a6,0x2073ab,0x2073b5,
+ 0x2073b7,0x2073bc,0x2073cf,0x2073d9,0x2073e9,0x2073f4,0x2073fd,0x207404,0x20740a,0x20741a,
+ 0x20741b,0x207424,0x207428,0x20742c,0x20742f,0x207430,0x207431,0x207439,0x207444,0x207447,
+ 0x20744b,0x20744d,0x207451,0x207457,0x207466,0x20746b,0x207471,0x207480,0x207485,0x207486,
+ 0x207487,0x207490,0x207498,0x20749c,0x2074a0,0x2074a3,0x2074a8,0x2074ab,0x2074b5,0x2074bf,
+ 0x2074c8,0x2074da,0x2074de,0x20754e,0x207579,0x207581,0x207590,0x207592,0x207593,0x2075b4,
+ 0x2075e4,0x2075f9,0x207600,0x20760a,0x207615,0x207616,0x207619,0x20761e,0x20762d,0x207635,
+ 0x207643,0x20764b,0x207665,0x20766d,0x20766f,0x207671,0x207674,0x2076a4,0x2076a5,0x2076c5,
+ 0x2076cc,0x2076ec,0x2076fc,0x207734,0x207736,0x20775c,0x20775f,0x207760,0x207772,0x20777d,
+ 0x207795,0x2077aa,0x2077e6,0x2077f0,0x2077f4,0x207806,0x207822,0x20782d,0x20782e,0x207830,
+ 0x207835,0x207868,0x20789e,0x2078c8,0x2078cc,0x2078ce,0x2078e4,0x2078e0,0x2078e1,0x2078f2,
+ 0x2078f7,0x2078fb,0x207931,0x407934,0x20793b,0x20793d,0x207945,0x20795b,0x20795c,0x20798b,
+ 0x207996,0x207998,0x2079b8,0x2079bb,0x2079ca,0x2079da,0x207a03,0x207a09,0x207a11,0x207a1e,
+ 0x207a2d,0x207a39,0x207a45,0x207a4c,0x207a5d,0x407a60,0x207a6d,0x207a78,0x207aa0,0x207aa3,
+ 0x207ab3,0x207abb,0x207abc,0x207ac6,0x207b07,0x207b14,0x207b27,0x207b31,0x207b47,0x207b4e,
+ 0x207b60,0x207b69,0x207b6d,0x207b72,0x207b91,0x207baf,0x207bd7,0x207bd9,0x207c0b,0x207c0f,
+ 0x207c20,0x207c26,0x207c31,0x207c36,0x207c51,0x207c59,0x207c67,0x207c6e,0x207c70,0x207cbc,
+ 0x207cbf,0x207cc8,0x207cc9,0x207cd7,0x207cd9,0x207cdd,0x207ceb,0x207d07,0x207d08,0x207d09,
+ 0x207d13,0x207d1d,0x207d23,0x207d41,0x207d53,0x207d59,0x207d5d,0x207d7a,0x207d86,0x207d8b,
+ 0x207d8c,0x207dcc,0x207deb,0x207df1,0x207df9,0x207e08,0x207e11,0x207e15,0x207e20,0x207e47,
+ 0x207e62,0x207e6e,0x207e73,0x207e8d,0x207e91,0x207e98,0x207f44,0x207f4f,0x207f52,0x207f53,
+ 0x207f61,0x207f91,0x207fbf,0x207fce,0x207fdf,0x207fe5,0x207fec,0x207fee,0x207fef,0x207ffa,
+ 0x20800e,0x208011,0x208014,0x208024,0x208026,0x20803a,0x20803c,0x208060,0x208071,0x208075,
+ 0x20809e,0x2080a6,0x2080ab,0x2080d7,0x2080d8,0x208116,0x208118,0x20813a,0x20814a,0x20814c,
+ 0x208181,0x208184,0x2081b4,0x2081cf,0x2081f9,0x208203,0x208221,0x208232,0x208234,0x208246,
+ 0x20824b,0x20824f,0x20828e,0x2082ae,0x2082b7,0x2082be,0x2082c6,0x2082fe,0x208343,0x208351,
+ 0x208355,0x208386,0x20838d,0x208392,0x208398,0x2083a9,0x2083bf,0x2083c0,0x2083ea,0x20840f,
+ 0x208411,0x20844a,0x208476,0x2084a8,0x2084af,0x2084c0,0x2084c2,0x2084f0,0x2084fd,0x20850c,
+ 0x208534,0x20855e,0x20858f,0x2085b7,0x2085ce,0x2085ad,0x208612,0x208629,0x208652,0x208663,
+ 0x20866c,0x20866f,0x20867a,0x20868d,0x208691,0x208698,0x2086a7,0x2086a8,0x2086fa,0x2086fd,
+ 0x20870b,0x208713,0x208719,0x20871e,0x208728,0x20873e,0x208771,0x208788,0x208799,0x2087ac,
+ 0x2087ad,0x2087b5,0x2087d6,0x2087eb,0x2087ed,0x208801,0x408803,0x208806,0x20880b,0x208814,
+ 0x20881c,0x208856,0x20885f,0x208864,0x208898,0x2088aa,0x2088bd,0x2088be,0x2088ca,0x2088d2,
+ 0x2088db,0x2088f0,0x2088f1,0x208906,0x208918,0x208919,0x20891a,0x208927,0x208930,0x20893e,
+ 0x20897b,0x2089d4,0x2089d6,0x2089e5,0x2089f1,0x208a07,0x208a0f,0x208a15,0x208a22,0x208a4e,
+ 0x208a7f,0x208af4,0x208b1f,0x208b37,0x208b43,0x208b44,0x208b54,0x208b9c,0x208b9e,0x208c47,
+ 0x208c54,0x208c73,0x208ca4,0x208cd9,0x208ce1,0x208cf8,0x208cfe,0x208d1b,0x208d69,0x208d6c,
+ 0x208d84,0x208d8d,0x208d95,0x208da6,0x208dc6,0x208dce,0x208de4,0x208dec,0x208e20,0x208e4b,
+ 0x208e6c,0x208e70,0x208e7a,0x208e92,0x208eae,0x208eb3,0x208ed1,0x408ed4,0x208ef9,0x208f17,
+ 0x208f36,0x208fa6,0x208fb5,0x208fb6,0x408fc6,0x208fe0,0x208fe4,0x208ff6,0x209002,0x20902c,
+ 0x209044,0x209088,0x209095,0x209099,0x20909b,0x2090a2,0x2090b4,0x2090d7,0x2090dd,0x2090f4,
+ 0x209117,0x20911c,0x209131,0x20913a,0x20913d,0x209148,0x20915b,0x209161,0x209164,0x20918e,
+ 0x20919e,0x2091a8,0x2091ad,0x2091ae,0x2091b2,0x2091bc,0x2091f0,0x2091f7,0x2091fb,0x209207,
+ 0x209228,0x209233,0x209238,0x209243,0x209247,0x20924f,0x209260,0x2092c2,0x2092cb,0x2092cc,
+ 0x2092df,0x20930d,0x209315,0x20931f,0x209327,0x209347,0x209352,0x409365,0x20936a,0x20936d,
+ 0x20939b,0x2093ba,0x2093a9,0x2093c1,0x2093ca,0x2093e2,0x2093fa,0x2093fd,0x20940f,0x209434,
+ 0x20943f,0x209455,0x20946b,0x209472,0x209578,0x2095a6,0x2095a9,0x4095ab,0x2095b4,0x2095bd,
+ 0x2095da,0x20961d,0x209641,0x209658,0x209684,0x2096a4,0x2096a9,0x2096d2,0x205db2,0x2096de,
+ 0x2096e9,0x2096f1,0x209702,0x209709,0x20975a,0x209763,0x20976e,0x209773,0x20979a,0x2097a2,
+ 0x2097b5,0x2097b6,0x2097d9,0x2097de,0x2097f4,0x20980a,0x20980e,0x20981e,0x209823,0x20982b,
+ 0x20983e,0x209852,0x209853,0x209859,0x20986c,0x2098b8,0x2098ba,0x2098bf,0x2098c8,0x2098e5,
+ 0x209932,0x209933,0x209940,0x20994d,0x20995c,0x20995f,0x2099b1,0x2099b9,0x2099ba,0x2099c9,
+ 0x209a02,0x209a16,0x209a24,0x209a27,0x209a2d,0x209a2e,0x209a36,0x209a38,0x209a4a,0x209a56,
+ 0x209ab5,0x209ab6,0x209af9,0x209b03,0x209b20,0x209b33,0x209b34,0x209b73,0x209b79,0x209ba7,
+ 0x209bc1,0x209bc7,0x209bd7,0x209be7,0x209beb,0x209bf7,0x209bfa,0x209bfd,0x209c0b,0x209c27,
+ 0x209c2a,0x209c36,0x209c41,0x209c53,0x209c63,0x209c70,0x209c77,0x209d02,0x209d42,0x209d47,
+ 0x209d63,0x209d69,0x209d7c,0x209d7e,0x209d8d,0x209db1,0x209dc3,0x209dc7,0x209dd6,0x209ddf,
+ 0x209deb,0x209df4,0x209e15,0x209e1d,0x209ea4,0x209ea8,0x209eac,0x209ee7,0x209eee,0x209f10,
+ 0x209f12,0x209f17,0x209f19,0x209f2f,0x209f37,0x209f39,0x209f41,0x209f45,0x209f57,0x209f68,
+ 0x209f71,0x209f75,0x209f90,0x209f94,0x209fa2,0x404e30,0x203405,0x404f60,0x205620,0x205ecb,
+ 0x405f50,0x4060a4,0x22363a,0x406b24,0x206ff9,0x206ee6,0x2071b3,0x40722b,0x407ac6,0x407f61,
+ 0x408071,0x40809e,0x408fb6,0x4091fc,0x405db2,0x4097de,0x204fd3,0x2050d9,0x2050f0,0x2051c3,
+ 0x205676,0x206a54,0x206d01,0x206dd0,0x206e42,0x206ed9,0x2073e4,0x207421,0x20756c,0x207851,
+ 0x2087f5,0x2233fe,0x2073a8,0x203af3,0x2034db,0x20440c,0x203e8a,0x4235c4,0x209fbd,0x204be8,
+ 0x209fbc,0x203eda,0x203b22,0x209fbe,0x20457a,0x204093,0x429e3d,0x204665,0x204103,0x204293,
+ 0x2046ae,0x203488,0x222609,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,0x204f48,0x204f5f,
+ 0x204f6a,0x204f6c,0x20500e,0x205018,0x205041,0x2050f2,0x2050d0,0x205106,0x205103,0x205135,
+ 0x205155,0x205157,0x2034b5,0x2051ca,0x2051e2,0x205257,0x2052cc,0x2052d6,0x2052fb,0x20531c,
+ 0x205363,0x20539d,0x205412,0x20547f,0x205488,0x205550,0x205581,0x2055ad,0x2055ce,0x20563b,
+ 0x20569e,0x2056a9,0x2056b3,0x205777,0x20577c,0x22131b,0x2057cf,0x2057e4,0x205864,0x205889,
+ 0x22146e,0x2058d2,0x2058e0,0x208641,0x20598b,0x205992,0x2059c3,0x205a13,0x205a67,0x205a77,
+ 0x205a84,0x205ac4,0x2218bd,0x205b7d,0x205b93,0x205c12,0x205c6e,0x2216b4,0x205c7a,0x205c8f,
+ 0x205c9f,0x205ca3,0x205caa,0x205cd0,0x221e34,0x205d0d,0x205d47,0x205d81,0x205da4,0x205da7,
+ 0x205dcb,0x205e5e,0x205ef9,0x205f00,0x205f02,0x205f23,0x205f3d,0x205f54,0x205f7d,0x20600d,
+ 0x206014,0x206018,0x206035,0x206047,0x20609d,0x2060d4,0x2060dd,0x20612b,0x2061bc,0x2061b9,
+ 0x206222,0x20625a,0x20626f,0x2062d6,0x20637c,0x2063e5,0x206479,0x2064c4,0x2064d0,0x206529,
+ 0x20659d,0x20663a,0x206622,0x20662b,0x206630,0x206633,0x206648,0x2231c4,0x206677,0x206678,
+ 0x20668d,0x2066bb,0x2066db,0x2066e8,0x206747,0x206781,0x206793,0x206798,0x20679b,0x2067fc,
+ 0x20681d,0x2068a3,0x20690a,0x206949,0x2235c4,0x206942,0x206964,0x2069a5,0x2069cf,0x203bb6,
+ 0x203bc3,0x2069e9,0x2069f5,0x22373f,0x206a3b,0x223763,0x206a94,0x206aa5,0x203c0f,0x206b1b,
+ 0x206b2c,0x206b67,0x206ba9,0x206bad,0x206bd7,0x206bff,0x206c05,0x206c74,0x206c98,0x206cfb,
+ 0x206cc6,0x206d31,0x206d39,0x206d3f,0x206d58,0x206d94,0x206daa,0x206ddb,0x206ddd,0x206e44,
+ 0x206e5e,0x206eb1,0x206ec1,0x206f10,0x206f59,0x206f61,0x206f7e,0x206f8c,0x206fa0,0x206fbc,
+ 0x206fc7,0x206fca,0x206ff0,0x20704e,0x207075,0x2070a4,0x2070e4,0x20712b,0x20711e,0x20712e,
+ 0x207151,0x207168,0x207185,0x207187,0x2071ba,0x2071c4,0x207215,0x203e3f,0x20729b,0x2247f1,
+ 0x207327,0x207350,0x207366,0x2073a2,0x20742b,0x207446,0x207462,0x20746d,0x2074a6,0x2074a9,
+ 0x2074c9,0x2074ff,0x207517,0x203f72,0x2075ce,0x207602,0x207608,0x207664,0x207681,0x20769d,
+ 0x2076aa,0x2076b6,0x2076ce,0x2076d4,0x2076e6,0x2076f1,0x20770a,0x207719,0x20774d,0x20774e,
+ 0x20777a,0x207780,0x207794,0x2077e0,0x22548e,0x207843,0x20786e,0x2078b0,0x22550e,0x2078ad,
+ 0x207900,0x20791c,0x20792e,0x207934,0x207946,0x207979,0x2079c8,0x225771,0x2079d4,0x2079de,
+ 0x2079eb,0x2079ed,0x207a85,0x2259c4,0x207ace,0x207afd,0x207b12,0x207b2d,0x207b3b,0x207b6f,
+ 0x207c01,0x207c33,0x225da1,0x207c6d,0x207c79,0x207c8f,0x207c94,0x207ca0,0x207cd5,0x207d31,
+ 0x207d5c,0x207d83,0x207da6,0x207dc2,0x207e28,0x207f97,0x207fdb,0x208035,0x208037,0x2080ca,
+ 0x2080e0,0x2080f3,0x208160,0x208167,0x208168,0x20816d,0x2081bb,0x2081ca,0x2081d7,0x20445b,
+ 0x208260,0x208274,0x226aff,0x2082a1,0x2082a3,0x2082a4,0x2082a9,0x2082bf,0x2082d5,0x2082fd,
+ 0x208300,0x208322,0x20832d,0x20833a,0x208347,0x20837d,0x2083a7,0x2083cf,0x2083d1,0x2083e1,
+ 0x208401,0x208406,0x20845f,0x208470,0x208473,0x208485,0x20849e,0x2084ba,0x226e40,0x208532,
+ 0x20851e,0x20852f,0x208564,0x20857a,0x20858c,0x2085a2,0x2085cb,0x2085ed,0x2085ff,0x208604,
+ 0x208605,0x208610,0x2270f4,0x208618,0x208638,0x208657,0x208662,0x20459d,0x208675,0x2086b8,
+ 0x2086fc,0x208787,0x2045ea,0x20880a,0x208810,0x2088ce,0x227684,0x208932,0x208939,0x208940,
+ 0x208994,0x2089f6,0x208a47,0x208a5d,0x208a61,0x208a75,0x208ad0,0x208b46,0x208b59,0x208b69,
+ 0x208b9d,0x208c49,0x208c68,0x208daf,0x208dd1,0x208dd7,0x208e23,0x208e3d,0x208e7b,0x228277,
+ 0x204844,0x208efa,0x208f1e,0x208f2d,0x208f54,0x2283cd,0x208fe8,0x208fee,0x209008,0x20902d,
+ 0x209097,0x2090b3,0x2090be,0x2090c4,0x2090c5,0x2090c7,0x2090ef,0x209114,0x209116,0x209122,
+ 0x209123,0x20912f,0x209134,0x209183,0x2091f1,0x209349,0x209364,0x209365,0x2093a3,0x2093df,
+ 0x209404,0x209433,0x20944a,0x209463,0x209471,0x20958e,0x20959f,0x2095ac,0x2095b6,0x2095cb,
+ 0x2095d0,0x2095d3,0x2049b0,0x2095de,0x2096a5,0x2096ef,0x20974e,0x209795,0x2097ae,0x2097ba,
+ 0x2097c1,0x2097c9,0x2097db,0x209856,0x2098e7,0x209958,0x209a03,0x209ac1,0x209ac3,0x209ace,
+ 0x209ad6,0x209b02,0x209b08,0x204c17,0x209b2d,0x209b5e,0x209b66,0x209b84,0x209b8a,0x209b9e,
+ 0x209bce,0x209be5,0x209bf8,0x209c23,0x209c4f,0x209c50,0x209c65,0x209d1d,0x209d1e,0x209d43,
+ 0x209d52,0x209d8a,0x209d96,0x209dc0,0x209dac,0x209dbc,0x22a190,0x209de7,0x209e07,0x209e9e,
+ 0x209eaf,0x209f97,0x220089,0x204e02,0x204e0f,0x204e12,0x204e29,0x204e2e,0x204e47,0x2200a2,
+ 0x204e51,0x203406,0x2200a4,0x204e69,0x204e9d,0x20342c,0x204ebc,0x204ec3,0x204ec8,0x204eeb,
+ 0x204eda,0x204ef1,0x204ef5,0x204f16,0x204f64,0x204f37,0x204f3e,0x204f58,0x220213,0x204f77,
+ 0x204f78,0x204f82,0x204f85,0x204fe6,0x204fb2,0x204fc5,0x204fcb,0x204fd2,0x20346a,0x204ff2,
+ 0x205013,0x20501c,0x20504e,0x205053,0x205063,0x2050a3,0x205088,0x205092,0x205093,0x205095,
+ 0x2050aa,0x22032b,0x2050b1,0x2050ba,0x2050bb,0x2050c4,0x2050c7,0x2050f3,0x220381,0x2050ce,
+ 0x220371,0x2050d4,0x2050e1,0x203492,0x2203f9,0x205117,0x22044a,0x205160,0x220509,0x205173,
+ 0x205183,0x20518b,0x2034bc,0x205198,0x2051a3,0x2051ad,0x2034c7,0x2205d6,0x2051f3,0x205212,
+ 0x205216,0x22074f,0x205255,0x20525c,0x20526c,0x205277,0x205284,0x205282,0x220807,0x205298,
+ 0x22083a,0x2052a4,0x2052ba,0x2052bb,0x2052ca,0x2052d1,0x2208b9,0x2052f7,0x205335,0x205342,
+ 0x22097c,0x22099d,0x205367,0x20537a,0x2053a4,0x2053b4,0x220ad3,0x2053b7,0x2053c0,0x220b1d,
+ 0x20355d,0x20355e,0x2053d5,0x203563,0x2053f4,0x205424,0x205428,0x20356e,0x205443,0x205462,
+ 0x20546c,0x205495,0x2054a0,0x2054a6,0x2054ae,0x2054b7,0x2054ba,0x2054c3,0x220d45,0x2054ec,
+ 0x2054ef,0x2054f1,0x2054f3,0x205500,0x205501,0x205509,0x20553c,0x205541,0x2035a6,0x205547,
+ 0x2035a8,0x205564,0x220de1,0x20557d,0x205582,0x205591,0x2035c5,0x2055d2,0x220e95,0x220e6d,
+ 0x2055bf,0x2055c9,0x2055cc,0x2055d1,0x2055dd,0x2035da,0x2055e2,0x220e64,0x2055e9,0x205628,
+ 0x220f5f,0x205607,0x205610,0x205630,0x2035f4,0x20563d,0x205640,0x205647,0x20565e,0x205660,
+ 0x20566d,0x203605,0x205688,0x20568c,0x20569d,0x2056a8,0x2056b2,0x2056c5,0x2056cd,0x2056df,
+ 0x2056e8,0x2056f6,0x2056f7,0x221201,0x221255,0x205729,0x22127b,0x205745,0x205746,0x20574d,
+ 0x221274,0x205768,0x20576f,0x205773,0x205774,0x205775,0x20577b,0x2212e4,0x2212d7,0x20579a,
+ 0x20579d,0x20579e,0x2057a8,0x2057d7,0x2212fd,0x2057cc,0x221336,0x221344,0x2057de,0x2057f0,
+ 0x20364a,0x2057f8,0x2057fb,0x2057fd,0x205804,0x20581e,0x205827,0x205839,0x2213c4,0x205849,
+ 0x20584c,0x205867,0x20588a,0x20588b,0x20588d,0x20588f,0x205890,0x205894,0x20589d,0x2058aa,
+ 0x2058b1,0x22146d,0x2058c3,0x2058cd,0x2058e2,0x2058f3,0x2058f4,0x205905,0x205906,0x20590d,
+ 0x205914,0x2215d7,0x203691,0x20593d,0x203699,0x205946,0x203696,0x226c29,0x20595f,0x221647,
+ 0x205975,0x205976,0x20597c,0x20599f,0x2059ae,0x2059bc,0x2059c8,0x2059cd,0x2059de,0x2059e7,
+ 0x2059ee,0x221706,0x221742,0x2036cf,0x205a0d,0x205a17,0x205a27,0x205a2d,0x205a65,0x205a7a,
+ 0x205a8b,0x205a9c,0x205a9f,0x205aa0,0x205aa2,0x205ab1,0x205ab5,0x205aba,0x205abf,0x205ada,
+ 0x205adc,0x205ae5,0x205af0,0x205aee,0x205af5,0x205b08,0x205b17,0x205b34,0x205b4c,0x205b52,
+ 0x205b68,0x205b6f,0x205b81,0x205b84,0x2219c3,0x205b96,0x205bac,0x203761,0x203762,0x205bce,
+ 0x205bd6,0x20376c,0x20376b,0x205bf1,0x205bfd,0x203775,0x205c03,0x205c29,0x221c56,0x205c5f,
+ 0x205c67,0x205c68,0x205c70,0x221d2d,0x221d45,0x221d78,0x221d62,0x205c88,0x205c8a,0x2037c1,
+ 0x221da1,0x221d9c,0x205ca0,0x205ca2,0x205ca7,0x221d92,0x205cad,0x205cb5,0x221db7,0x205cc9,
+ 0x221de0,0x221e33,0x205d06,0x205d10,0x205d2b,0x205d1d,0x205d20,0x205d31,0x205d39,0x2037e8,
+ 0x205d61,0x205d6a,0x2037f4,0x205d70,0x221f1e,0x2037fd,0x205d88,0x203800,0x205d97,0x205db0,
+ 0x205db4,0x221f76,0x205dd1,0x205dd7,0x221ffa,0x205de4,0x205de9,0x20382f,0x203836,0x203840,
+ 0x205e1f,0x205e3e,0x205e49,0x20385c,0x205e56,0x203861,0x205e6d,0x205e6e,0x22217b,0x205ea5,
+ 0x205eac,0x205eb9,0x205ec6,0x205ed9,0x22231e,0x205efd,0x205f08,0x2223ad,0x205f1e,0x205f47,
+ 0x205f63,0x205f72,0x205f7e,0x205f8f,0x205fa2,0x205fc7,0x205fcb,0x205fd2,0x205fd3,0x205fd4,
+ 0x205fe2,0x205fee,0x205fef,0x205ff3,0x203917,0x206022,0x206024,0x20391a,0x20604c,0x206095,
+ 0x2060a8,0x2226f3,0x2060b1,0x2060be,0x2060c8,0x2060d9,0x2060ee,0x2060f5,0x206110,0x206119,
+ 0x20611e,0x20613a,0x20396f,0x206141,0x206146,0x206160,0x22285b,0x206192,0x206193,0x206197,
+ 0x2061a5,0x2061ad,0x2228ab,0x2061d5,0x2061dd,0x2061f5,0x22298f,0x206223,0x206252,0x206261,
+ 0x206264,0x20627b,0x20626d,0x206273,0x206299,0x2062d5,0x222ab8,0x2062fd,0x206303,0x206310,
+ 0x222b4f,0x222b50,0x206332,0x206335,0x20633b,0x20633c,0x206341,0x206344,0x20634e,0x222b46,
+ 0x206359,0x222c1d,0x222ba6,0x20636c,0x206399,0x222c24,0x206394,0x2063bd,0x2063d4,0x2063d5,
+ 0x2063e0,0x2063eb,0x2063ec,0x2063f2,0x20641e,0x206425,0x206429,0x20642f,0x20645a,0x20645d,
+ 0x206473,0x20647d,0x206487,0x206491,0x20649f,0x2064cb,0x2064cc,0x2064d5,0x2064d7,0x222de1,
+ 0x2064e4,0x2064ff,0x203a6e,0x20650f,0x206514,0x203a73,0x20651e,0x206532,0x206544,0x206554,
+ 0x20656b,0x20657a,0x206584,0x20658a,0x2065b2,0x2065b5,0x2065b8,0x2065bf,0x2065c9,0x2065d4,
+ 0x203ad6,0x2065f9,0x2065fc,0x206604,0x206608,0x206621,0x20662a,0x206645,0x206651,0x20664e,
+ 0x203aea,0x2231c3,0x2231f5,0x2231b6,0x20666a,0x20666c,0x20666d,0x20667b,0x206680,0x206690,
+ 0x206692,0x203b0e,0x2066ad,0x2066b1,0x2066b5,0x203b1a,0x203b1c,0x203ad7,0x206701,0x206712,
+ 0x223372,0x206719,0x2233d3,0x2233d2,0x20674d,0x206754,0x20675d,0x2233d0,0x2233e4,0x2233d5,
+ 0x206774,0x2233da,0x206792,0x2233df,0x208363,0x206810,0x2067c3,0x2067c8,0x2067d2,0x2067db,
+ 0x2067f7,0x22344a,0x223451,0x22344b,0x206818,0x20681f,0x20682d,0x223465,0x206833,0x20683b,
+ 0x20683e,0x206845,0x206849,0x20684c,0x206855,0x206857,0x203b77,0x20686b,0x20686e,0x20687c,
+ 0x206882,0x206890,0x206896,0x203b6d,0x206898,0x206899,0x20689a,0x20689c,0x2068aa,0x2068ab,
+ 0x2068b4,0x2068bb,0x2068fb,0x2234e4,0x22355a,0x2068c3,0x2068c5,0x2068cc,0x2068d9,0x2068e4,
+ 0x2068e5,0x2068ec,0x2068f7,0x206903,0x206907,0x203b87,0x223594,0x203b8d,0x206946,0x206969,
+ 0x20696c,0x20697a,0x206992,0x203ba4,0x206996,0x2069b0,0x2069ba,0x2069bc,0x2069c0,0x2069d1,
+ 0x223639,0x223647,0x223638,0x2069e3,0x2069ee,0x2069ef,0x2069f3,0x203bcd,0x2069f4,0x2069fe,
+ 0x206a11,0x206a1a,0x206a1d,0x22371c,0x206a32,0x206a33,0x206a3f,0x206a49,0x206a7a,0x206a4e,
+ 0x206a52,0x206a64,0x22370c,0x206a8b,0x203bf0,0x206aa1,0x223764,0x206aab,0x206abd,0x206ac6,
+ 0x206ad4,0x206ad0,0x206add,0x2237ff,0x2237e7,0x206af1,0x206af2,0x206af3,0x206afd,0x223824,
+ 0x206b0b,0x206b0f,0x206b10,0x206b11,0x22383d,0x206b17,0x203c26,0x206b2f,0x206b4a,0x206b58,
+ 0x206b6c,0x206b75,0x206b7a,0x206b81,0x206b9b,0x206bae,0x223a98,0x206bbd,0x206bc7,0x206bc8,
+ 0x206bc9,0x206bda,0x206be6,0x206be7,0x206bee,0x206c02,0x206c0a,0x206c0e,0x206c36,0x223c7f,
+ 0x206c4d,0x206c5b,0x206c6d,0x206c84,0x206c89,0x203cc3,0x206c94,0x206c97,0x206cad,0x206cc2,
+ 0x203cd2,0x206cdc,0x206ce9,0x206ced,0x223d00,0x206d00,0x206d24,0x206d26,0x206d27,0x206c67,
+ 0x206d2f,0x206d3c,0x206d5b,0x206d60,0x206d70,0x206d80,0x206d81,0x206d8a,0x206d8d,0x206d91,
+ 0x206d98,0x223d40,0x223dfa,0x223df9,0x223dd3,0x206dab,0x206dae,0x206db4,0x206dc2,0x206d34,
+ 0x206dc8,0x206dce,0x206ddf,0x206df6,0x206e36,0x206e1e,0x203d11,0x206e32,0x206e48,0x206e49,
+ 0x206e4b,0x206e4c,0x206e4f,0x206e53,0x206e54,0x206e57,0x206e63,0x203d1e,0x206e93,0x206ea7,
+ 0x206eb4,0x206ec3,0x206f35,0x206eeb,0x206ef9,0x206efb,0x206f0a,0x206f0c,0x206f18,0x206f25,
+ 0x206f36,0x206f3c,0x223f7e,0x206f52,0x206f57,0x206f60,0x206f68,0x206f90,0x206f96,0x206fbe,
+ 0x206f9f,0x206fa5,0x206faf,0x203d64,0x206fc8,0x206fc9,0x206fe9,0x224096,0x206ffc,0x207000,
+ 0x20700a,0x207023,0x224103,0x20703a,0x207043,0x207047,0x20704b,0x203d9a,0x207065,0x207069,
+ 0x20706e,0x207076,0x207086,0x207097,0x2241c6,0x20709f,0x2070b1,0x2241fe,0x2070ec,0x2070ca,
+ 0x2070d1,0x207103,0x207106,0x207108,0x20710c,0x203dc0,0x20712f,0x207150,0x207153,0x20715e,
+ 0x203dd4,0x207196,0x207180,0x20719b,0x2071a0,0x2071a2,0x2071ae,0x2071af,0x2243bc,0x2071d9,
+ 0x2071dc,0x207207,0x203e05,0x207234,0x207239,0x207242,0x207257,0x207263,0x224629,0x20726e,
+ 0x20726f,0x207278,0x20727f,0x20728e,0x2246a5,0x2072ae,0x2072b0,0x2072c1,0x203e60,0x2072cc,
+ 0x203e66,0x203e68,0x2072f3,0x2072fa,0x207307,0x207312,0x207318,0x207319,0x203e83,0x207339,
+ 0x20732c,0x207333,0x20733d,0x207352,0x203e94,0x20736b,0x224896,0x20736e,0x20736f,0x207371,
+ 0x207381,0x20738a,0x207394,0x207398,0x20739c,0x2073a5,0x2073b9,0x2073bf,0x2073c5,0x2073cb,
+ 0x2073e1,0x2073e7,0x2073f9,0x207413,0x2073fa,0x207401,0x207453,0x207440,0x207443,0x207452,
+ 0x20745d,0x207481,0x207488,0x224a4d,0x207492,0x207497,0x207499,0x2074a1,0x2074a5,0x2074aa,
+ 0x2074b9,0x2074bb,0x2074ba,0x2074d6,0x2074d8,0x2074eb,0x224b56,0x2074fa,0x224b6f,0x207520,
+ 0x207524,0x20752a,0x203f57,0x224c16,0x20753d,0x20753e,0x207540,0x207548,0x207550,0x207552,
+ 0x207572,0x207571,0x20757a,0x20757d,0x20757e,0x20758c,0x203f75,0x2075a2,0x203f77,0x2075b0,
+ 0x2075b7,0x2075bf,0x2075c0,0x2075c6,0x2075cf,0x2075d3,0x2075dd,0x2075df,0x2075e0,0x2075e7,
+ 0x2075ee,0x2075f1,0x207603,0x207618,0x207607,0x20760f,0x203fae,0x224e0e,0x207613,0x20761b,
+ 0x20761c,0x224e37,0x207625,0x207628,0x20763c,0x207633,0x224e6a,0x203fc9,0x207641,0x224e8b,
+ 0x207649,0x207655,0x203fd7,0x20766e,0x207695,0x2076a1,0x2076a0,0x2076a7,0x2076a8,0x2076af,
+ 0x22504a,0x2076c9,0x225055,0x2076e8,0x225122,0x207717,0x20771a,0x20772d,0x207735,0x2251a9,
+ 0x204039,0x2251e5,0x2251cd,0x207758,0x22521e,0x20777c,0x22524c,0x204058,0x20779a,0x20779f,
+ 0x2077a2,0x2077a4,0x2077de,0x2077df,0x2077e4,0x2077ea,0x2077ec,0x2077fb,0x22542e,0x207805,
+ 0x207809,0x20780d,0x207819,0x20782c,0x207847,0x20786a,0x2254d9,0x20788a,0x207894,0x2078a4,
+ 0x20789d,0x20789f,0x2078bb,0x2078d5,0x2078e6,0x2078f9,0x2078fa,0x2078fe,0x2255a7,0x207910,
+ 0x20791b,0x207925,0x20794a,0x207958,0x204105,0x207967,0x207972,0x207995,0x2079a1,0x2079a9,
+ 0x2079b4,0x2079c2,0x2079c7,0x2079cc,0x2079cd,0x2079d6,0x204148,0x2257a9,0x2257b4,0x20414f,
+ 0x207a0a,0x207a15,0x207a1b,0x204163,0x207a38,0x207a47,0x207a56,0x207a59,0x207a5c,0x207a5f,
+ 0x207a67,0x207a6a,0x207a75,0x207a82,0x207a8a,0x207a90,0x207aac,0x2259d4,0x2041b4,0x207ab9,
+ 0x207abe,0x2041bf,0x207acc,0x207ae8,0x207af4,0x225ae4,0x225ae3,0x225af1,0x207b3d,0x207b2a,
+ 0x207b2e,0x207b2f,0x2041e6,0x2041f3,0x207b7f,0x207b41,0x2041ee,0x207b55,0x207b79,0x207b64,
+ 0x207b66,0x207b73,0x225bb2,0x204207,0x207b90,0x207b9b,0x20420e,0x207bb5,0x207bbc,0x207bc5,
+ 0x207bca,0x225c4b,0x225c64,0x207bd4,0x207bd6,0x207bda,0x207bea,0x207bf0,0x207c03,0x207c0e,
+ 0x207c45,0x207c4a,0x207c57,0x207c5e,0x207c61,0x207c69,0x207c6f,0x225e2e,0x225e56,0x225e65,
+ 0x207ca6,0x225e62,0x207cb6,0x207cb7,0x225ed8,0x207cc4,0x225ec2,0x207ccd,0x225ee8,0x225f23,
+ 0x207ce6,0x225f5c,0x207cf5,0x207d03,0x2042c6,0x207d12,0x207d1e,0x225fe0,0x225fd4,0x207d3d,
+ 0x207d3e,0x207d40,0x207d47,0x22600c,0x225ffb,0x2042d6,0x207d5a,0x207d6a,0x207d70,0x2042dd,
+ 0x207d7f,0x226017,0x207d88,0x207d97,0x226060,0x207d9d,0x207da7,0x207daa,0x207db6,0x207dc0,
+ 0x207dd7,0x207dd9,0x207de6,0x204302,0x2260ed,0x407e09,0x207e10,0x207e17,0x207e1d,0x207e27,
+ 0x207e2c,0x207e45,0x207e75,0x207e7e,0x207e86,0x207e87,0x20432b,0x207e9a,0x204343,0x207f3c,
+ 0x207f3b,0x207f3e,0x207f43,0x2034c1,0x226270,0x226286,0x207f63,0x207f64,0x207f6d,0x207f7d,
+ 0x207f7e,0x207f90,0x20517b,0x223d0e,0x207f96,0x207f9c,0x207fad,0x226402,0x207fc3,0x207fcf,
+ 0x207fe3,0x207ff2,0x20800a,0x208008,0x208016,0x20802c,0x208030,0x208043,0x208066,0x20807b,
+ 0x208099,0x20809c,0x2080a4,0x2080a7,0x2080b8,0x22667e,0x2080c5,0x2080d5,0x2080e6,0x20810d,
+ 0x2080f5,0x2080fb,0x2043ee,0x208135,0x20811e,0x2043f0,0x208124,0x208127,0x20812c,0x22671d,
+ 0x20813d,0x204408,0x208169,0x204417,0x20441c,0x208185,0x204422,0x208198,0x2081b2,0x2081c1,
+ 0x2081c3,0x2081d6,0x2081db,0x2268dd,0x2081e4,0x2268ea,0x2081ec,0x2081fd,0x2081ff,0x22696f,
+ 0x208204,0x2269dd,0x208219,0x208222,0x226a1e,0x20823c,0x208249,0x208245,0x226a58,0x204476,
+ 0x20447a,0x208257,0x226a8c,0x20825c,0x208263,0x226ab7,0x204491,0x20827d,0x20827f,0x208283,
+ 0x20828a,0x208293,0x2082a7,0x2082a8,0x2082b2,0x2082b4,0x2082ba,0x2082bc,0x2082e2,0x2082e8,
+ 0x2082f7,0x208307,0x208308,0x20830c,0x208354,0x20831b,0x20831d,0x208330,0x20833c,0x208344,
+ 0x208357,0x2044be,0x2044d4,0x2044b3,0x208394,0x208395,0x20839b,0x20839d,0x2083c9,0x2083d0,
+ 0x2083d4,0x2083dd,0x2083e5,0x2083f9,0x208415,0x226c73,0x208417,0x208439,0x20844f,0x208451,
+ 0x208452,0x208459,0x20845a,0x20845c,0x226cdd,0x208465,0x208478,0x20847c,0x208481,0x20450d,
+ 0x208497,0x2084a6,0x2084be,0x204508,0x2084ce,0x2084cf,0x2084d3,0x226e65,0x2084e7,0x2084ea,
+ 0x2084ef,0x2084f1,0x2084fa,0x20851b,0x208524,0x208525,0x20852b,0x20854f,0x20856f,0x204543,
+ 0x208551,0x208561,0x208562,0x226f94,0x20857b,0x20857d,0x20857f,0x208581,0x208586,0x208593,
+ 0x20859d,0x20859f,0x226ff8,0x226ff6,0x226ff7,0x2085bc,0x2085c7,0x2085ca,0x2085d8,0x2085d9,
+ 0x2085df,0x2085e1,0x2085e6,0x2085f6,0x208600,0x208611,0x20861e,0x208621,0x208624,0x208627,
+ 0x22710d,0x208639,0x20863c,0x227139,0x208640,0x208653,0x208656,0x208677,0x208687,0x208689,
+ 0x20869c,0x20869d,0x2086b1,0x2086b3,0x2086c1,0x2086c3,0x2086d1,0x2086d5,0x2086d7,0x2086e3,
+ 0x2086e6,0x2045b8,0x208705,0x208707,0x20870e,0x208710,0x20871f,0x208721,0x208723,0x208731,
+ 0x20873a,0x208740,0x208743,0x208751,0x208758,0x208764,0x208765,0x208772,0x20877c,0x2273db,
+ 0x2273da,0x2087a7,0x208789,0x20878b,0x208793,0x2087a0,0x2273fe,0x2045e5,0x2087be,0x227410,
+ 0x2087c1,0x2087ce,0x2087df,0x227449,0x2087e3,0x2087e5,0x2087e6,0x2087ea,0x208813,0x208828,
+ 0x20882e,0x208832,0x20883c,0x20460f,0x20884a,0x208858,0x227615,0x227614,0x208869,0x227631,
+ 0x20886f,0x2088a0,0x2088bc,0x2088c0,0x227693,0x2088d1,0x2088d3,0x204641,0x208901,0x22770e,
+ 0x208937,0x227723,0x208942,0x208945,0x208949,0x227752,0x208962,0x208989,0x208990,0x20899f,
+ 0x2089b0,0x2089b7,0x2089d8,0x2089eb,0x2046a1,0x2089f3,0x2089fd,0x2089ff,0x2046af,0x208a11,
+ 0x208a14,0x227985,0x208a21,0x208a35,0x208a3e,0x208a45,0x208a4d,0x208a58,0x208aae,0x208a90,
+ 0x208ab7,0x208ad7,0x208afc,0x227a84,0x208b0a,0x208b05,0x208b0d,0x208b1c,0x208b2d,0x20470c,
+ 0x208b51,0x208b5e,0x208b76,0x208b81,0x208b8b,0x208b94,0x208b95,0x208c39,0x227bb3,0x208c3d,
+ 0x227bbe,0x227bc7,0x208c45,0x208c4f,0x208c57,0x208c69,0x208c6d,0x227cb8,0x208c93,0x208c92,
+ 0x208c99,0x204764,0x208c9b,0x208cd6,0x208cd5,0x227da0,0x208cf1,0x227e10,0x208d09,0x208d0e,
+ 0x208dc8,0x208dd9,0x208e0c,0x2047fd,0x208dfd,0x208e06,0x22808a,0x208e14,0x208e16,0x208e21,
+ 0x208e22,0x208e27,0x2280bb,0x204816,0x208e36,0x208e39,0x208e54,0x208e62,0x208e6d,0x208e6f,
+ 0x208e98,0x208e9e,0x208eb5,0x208ebb,0x228282,0x20484e,0x2282f3,0x208f00,0x208f08,0x208f2b,
+ 0x208f40,0x208f4a,0x208f58,0x22840c,0x208fa4,0x208fb4,0x228455,0x208fc1,0x208fc6,0x20fa24,
+ 0x208fca,0x208fcd,0x208fd3,0x208fd5,0x208ff1,0x208ff5,0x208ffb,0x20900c,0x209037,0x22856b,
+ 0x209043,0x20905d,0x2285c8,0x2285c9,0x209085,0x20908c,0x209090,0x2090a1,0x2048b5,0x2090b0,
+ 0x2090b6,0x2090c3,0x2090c8,0x2286d7,0x2090dc,0x2090df,0x2286fa,0x2090f6,0x2090f2,0x209100,
+ 0x2090eb,0x2090fe,0x2090ff,0x209104,0x209106,0x209118,0x20911e,0x209137,0x209139,0x209146,
+ 0x209147,0x209157,0x209159,0x209174,0x209179,0x209185,0x2091b3,0x2091b6,0x2091c3,0x2091c4,
+ 0x228949,0x228946,0x2091ec,0x209201,0x209216,0x209217,0x22896b,0x209242,0x20924a,0x209256,
+ 0x209261,0x209265,0x209268,0x228988,0x20927c,0x20927d,0x20927f,0x209289,0x20928d,0x209297,
+ 0x209299,0x20929f,0x2092ab,0x2289ba,0x2289bb,0x2092b2,0x2092bf,0x2092c0,0x2092c6,0x2092ce,
+ 0x2092e5,0x209311,0x228a1e,0x228a29,0x2092f7,0x209329,0x228a71,0x228a43,0x209351,0x20935a,
+ 0x20936b,0x209371,0x209373,0x2093a1,0x228a99,0x228acd,0x209388,0x20938b,0x20938f,0x20939e,
+ 0x2093f5,0x228ae4,0x228add,0x2093f1,0x2093c7,0x2093dc,0x2093e7,0x209409,0x209416,0x209417,
+ 0x2093fb,0x209432,0x20943b,0x228bc1,0x228bef,0x20946d,0x20946f,0x209579,0x209586,0x20958c,
+ 0x20958d,0x228d10,0x228d71,0x2095c8,0x228dfb,0x228e1f,0x20962c,0x209633,0x209634,0x228e36,
+ 0x20963c,0x209661,0x228e89,0x209682,0x228eeb,0x20969a,0x228f32,0x2049e7,0x2096b3,0x2096ba,
+ 0x2096bd,0x2049fa,0x228ff8,0x2096d8,0x2096da,0x2096dd,0x204a04,0x209714,0x209723,0x204a29,
+ 0x209736,0x209741,0x209747,0x209757,0x20975b,0x20976a,0x2292a0,0x2292b1,0x209796,0x20979e,
+ 0x2097b1,0x2097b2,0x2097be,0x2097cc,0x2097d1,0x2097d4,0x2097d8,0x2097e1,0x2097f1,0x209804,
+ 0x20980d,0x209814,0x209816,0x204abc,0x229490,0x209832,0x209833,0x209825,0x209847,0x209866,
+ 0x2098ab,0x2098ad,0x2098b0,0x2295cf,0x2098b7,0x2098bb,0x2098bc,0x2098c2,0x2098c7,0x2098cb,
+ 0x2098e1,0x2098e3,0x2098ea,0x2098f0,0x2098f1,0x2098f3,0x209908,0x204b3b,0x2296f0,0x209916,
+ 0x209917,0x229719,0x20991a,0x20991b,0x20991c,0x229750,0x209931,0x20993a,0x20993b,0x20993c,
+ 0x209941,0x209946,0x20994e,0x209960,0x2099a3,0x2099a6,0x2099bd,0x2099bf,0x2099c3,0x2099d4,
+ 0x2099d9,0x2099de,0x2298c6,0x2099f0,0x2099f9,0x2099fc,0x209a0a,0x209a11,0x209a1a,0x209a20,
+ 0x209a31,0x209a44,0x209a4c,0x209a58,0x204bc2,0x209aaf,0x204bca,0x209ab7,0x204bd2,0x209ab9,
+ 0x229a72,0x209ac6,0x209ad0,0x209ad2,0x209ad5,0x209ae0,0x209ae5,0x209ae9,0x209b0c,0x209b10,
+ 0x209b12,0x209b16,0x209b1c,0x209b2b,0x209b3d,0x204c20,0x209b4b,0x209b63,0x209b65,0x209b6b,
+ 0x209b6c,0x209b76,0x209b77,0x209ba6,0x209bac,0x229ddb,0x209bb2,0x209bb8,0x209bbe,0x209bf3,
+ 0x209bd8,0x209bdd,0x209bea,0x209bef,0x209bee,0x229e15,0x229e8a,0x229e49,0x209c16,0x209c18,
+ 0x209c19,0x209c1a,0x209c1d,0x209c22,0x209c29,0x229ec4,0x209c31,0x209c37,0x209c45,0x209c5c,
+ 0x229ee9,0x209c49,0x209c4a,0x229edb,0x209c54,0x209c58,0x209c5b,0x209c5d,0x209c5f,0x209c69,
+ 0x209c6a,0x209c6b,0x209c6d,0x209c6e,0x209c72,0x209c75,0x209c7a,0x209ce6,0x209cf2,0x209d0b,
+ 0x229fd7,0x209d11,0x209d17,0x209d18,0x22a02f,0x204cc4,0x22a01a,0x209d32,0x204cd1,0x209d4a,
+ 0x209d5f,0x209d62,0x22a0f9,0x22a082,0x209d73,0x209d76,0x209d77,0x209d84,0x209d99,0x209da1,
+ 0x209dbf,0x209db5,0x209db9,0x209dbd,0x209dc9,0x209dda,0x209de0,0x209de3,0x204d07,0x209e0a,
+ 0x209e02,0x209e0d,0x209e1c,0x209e7b,0x222218,0x209e80,0x209e85,0x209e9b,0x22a38c,0x209ebd,
+ 0x22a437,0x209edf,0x209eff,0x209f02,0x204d77,0x209f03,0x209f3a,0x209f3d,0x209f46,0x209f53,
+ 0x209f55,0x209f58,0x22a5f1,0x209f5d,0x22a602,0x209f69,0x209f6d,0x209f70,0x22a6b2,0x20793a,
+ 0x203614,0x2038ad,0x203dcc,0x203fdc,0x2045be,0x204610,0x204b7e,0x204c38,0x204ce1,0x204e0c,
+ 0x204e23,0x204e24,0x204e79,0x204ef3,0x204f0c,0x204f19,0x204f2b,0x204f2e,0x204f31,0x204f84,
+ 0x204f9e,0x204fb7,0x205004,0x20500c,0x20504c,0x20505f,0x205062,0x205077,0x20508e,0x20509e,
+ 0x2050a2,0x2050c3,0x2050e8,0x2050f1,0x2050fe,0x205107,0x20510c,0x20510d,0x20510e,0x205133,
+ 0x205138,0x205174,0x205184,0x2051b8,0x2051ba,0x2051c8,0x2051cf,0x2051d1,0x2051d3,0x2051d4,
+ 0x2051d8,0x2051df,0x205205,0x205226,0x205228,0x20522b,0x205231,0x205232,0x205235,0x20523c,
+ 0x20525a,0x205260,0x20526e,0x205278,0x205279,0x20528a,0x20528c,0x2052e1,0x2052e9,0x2052f1,
+ 0x205303,0x205311,0x20531f,0x20532d,0x205332,0x20533d,0x205365,0x20536d,0x205379,0x20537e,
+ 0x205394,0x205399,0x2053aa,0x2053af,0x2053ba,0x2053c1,0x2053c4,0x2053c5,0x2053e0,0x205413,
+ 0x20542a,0x205431,0x205434,0x205435,0x20544c,0x2054a7,0x2054aa,0x2054b1,0x2054bb,0x2054ce,
+ 0x2054ea,0x2054fc,0x205505,0x205508,0x205515,0x205527,0x20552a,0x205536,0x205551,0x205566,
+ 0x20558f,0x205592,0x205594,0x2055a4,0x2055b2,0x2055c3,0x2055c6,0x2055d3,0x2055db,0x2055ec,
+ 0x2055ee,0x2055f1,0x2055f6,0x2055f8,0x205605,0x20560d,0x205611,0x205612,0x20562c,0x205635,
+ 0x205639,0x20564d,0x205654,0x205685,0x20569f,0x2056a6,0x2056b7,0x2056cc,0x2056cf,0x2056d9,
+ 0x2056e1,0x2056eb,0x2056ed,0x2056f1,0x205707,0x20570c,0x20571a,0x20571b,0x20571d,0x20572c,
+ 0x20572e,0x20573d,0x20573e,0x20575f,0x20576b,0x20576d,0x20577a,0x205783,0x205797,0x2057ae,
+ 0x2057d5,0x2057e7,0x20580d,0x205826,0x20584d,0x20584f,0x20585f,0x20586d,0x20587f,0x205881,
+ 0x205898,0x2058bc,0x20591f,0x205923,0x205959,0x205979,0x205997,0x2059af,0x2059b3,0x2059df,
+ 0x2059f1,0x2059f8,0x205ab2,0x205ab8,0x205aea,0x205af6,0x205b1b,0x205b1d,0x205b21,0x205b38,
+ 0x205bb7,0x205bd7,0x205be0,0x205c1f,0x205c2a,0x205c2c,0x205c36,0x205c59,0x205c5c,0x205c6d,
+ 0x205cdd,0x205d01,0x205d34,0x205d3d,0x205d59,0x205d7e,0x205d83,0x205dc7,0x205df9,0x205e28,
+ 0x205e32,0x205e35,0x205e5b,0x205e68,0x205e6a,0x205e77,0x205e80,0x205e8b,0x205eb3,0x205ebd,
+ 0x205ed1,0x205ed4,0x205ed5,0x205f4d,0x205fac,0x205fea,0x206007,0x206049,0x206054,0x206067,
+ 0x2060bb,0x2060c4,0x2060fd,0x20610a,0x206116,0x20612a,0x206136,0x20615e,0x206164,0x20617b,
+ 0x20617d,0x20617f,0x20619d,0x2061b8,0x2061dc,0x2061e2,0x2061e5,0x2061e8,0x206204,0x206207,
+ 0x206231,0x206239,0x20623d,0x20627a,0x206290,0x2062a8,0x2062da,0x2062f4,0x206316,0x20632a,
+ 0x206336,0x206346,0x20634b,0x206353,0x206371,0x206375,0x20637f,0x206382,0x20638a,0x2063ae,
+ 0x2063af,0x2063ea,0x2063f8,0x2063f9,0x206412,0x206418,0x206420,0x206424,0x20642a,0x206435,
+ 0x20643d,0x20643f,0x206452,0x20645f,0x206474,0x206490,0x206498,0x206499,0x2064ac,0x2064b3,
+ 0x2064ed,0x2064f0,0x20651b,0x20651f,0x20652e,0x206549,0x206560,0x206592,0x206595,0x2065b4,
+ 0x2065be,0x2065c8,0x2065ce,0x2065d0,0x2065df,0x20667e,0x20668b,0x20668c,0x2066b3,0x2066c0,
+ 0x2066cf,0x206725,0x206735,0x206755,0x206780,0x20678f,0x206791,0x2067a4,0x2067b1,0x2067b5,
+ 0x2067be,0x206828,0x206886,0x2068eb,0x2068f5,0x206917,0x206933,0x206938,0x20695b,0x206965,
+ 0x2069a8,0x2069ab,0x2069af,0x2069e5,0x2069f1,0x206a4a,0x206a55,0x206a67,0x206a71,0x206aaf,
+ 0x206ac8,0x206ac9,0x206b03,0x206b3b,0x206b3f,0x206b7d,0x206b7e,0x206bb0,0x206bf7,0x206bf9,
+ 0x206c04,0x206c09,0x206c0d,0x206c2c,0x206c4a,0x206c52,0x206c54,0x206c79,0x206cac,0x206cb4,
+ 0x206cd2,0x206d61,0x206d7c,0x206db9,0x206df0,0x206e45,0x206e73,0x206e7b,0x206e7d,0x206e89,
+ 0x206ebc,0x206eda,0x206edb,0x206f26,0x206f29,0x206f30,0x206f87,0x206f9d,0x206fae,0x206fb7,
+ 0x20700d,0x207020,0x207049,0x207098,0x2070b0,0x2070d5,0x2070d6,0x207145,0x2071b2,0x2071f4,
+ 0x207217,0x20721f,0x207243,0x20724f,0x207250,0x20725a,0x207260,0x207268,0x207277,0x207284,
+ 0x2072c9,0x2072e5,0x2072f4,0x207302,0x20730b,0x20731e,0x207322,0x20733a,0x20733b,0x20734d,
+ 0x207358,0x207367,0x207472,0x2074af,0x2074df,0x2074e4,0x2074f4,0x2074fb,0x207516,0x207521,
+ 0x20753f,0x20755e,0x207599,0x2075a4,0x2075c1,0x2075c4,0x2075cc,0x2075d7,0x2075dc,0x2075e1,
+ 0x2075ef,0x207604,0x20760c,0x20761d,0x207632,0x207638,0x207645,0x20764a,0x20765f,0x2076ad,
+ 0x2076bd,0x2076d9,0x2076eb,0x2076f0,0x2076f9,0x207700,0x20770e,0x207722,0x207728,0x20772f,
+ 0x207739,0x20773e,0x207745,0x20774a,0x20774f,0x20775e,0x207764,0x207767,0x20776c,0x207784,
+ 0x20778c,0x20778d,0x207796,0x2077a7,0x2077af,0x2077b7,0x2077be,0x2077c9,0x2077d1,0x2077d9,
+ 0x2077f1,0x207837,0x20785c,0x20787e,0x207898,0x2078a1,0x2078b1,0x2078b3,0x2078c9,0x2078d3,
+ 0x20790c,0x20791f,0x207927,0x207928,0x20793f,0x207942,0x207954,0x20796b,0x20797c,0x2079ab,
+ 0x2079c4,0x2079ea,0x207a02,0x207a0c,0x207a30,0x207a3a,0x207a44,0x207a80,0x207a86,0x207a94,
+ 0x207ab5,0x207abd,0x207afe,0x207b2b,0x207b77,0x207ba0,0x207bac,0x207bb0,0x207be8,0x207bf2,
+ 0x207bf8,0x207bfc,0x207bfe,0x207c09,0x207c28,0x207c2f,0x207c42,0x207c52,0x207c53,0x207c5b,
+ 0x207c5c,0x207c5d,0x207c72,0x207c7d,0x207c87,0x207c9e,0x207cba,0x207cc7,0x207cd3,0x207cda,
+ 0x207d3c,0x207d4d,0x207d82,0x207d85,0x207d8d,0x207d91,0x207d9e,0x207db3,0x207db9,0x207dd0,
+ 0x207de5,0x207df5,0x207df6,0x207e2f,0x207e36,0x207e44,0x207e6f,0x207e78,0x207e81,0x207f3d,
+ 0x207f5b,0x207f5d,0x207f65,0x207f71,0x207f7f,0x207f80,0x207f8b,0x207fa2,0x207ffd,0x207ffe,
+ 0x207fff,0x208007,0x20800d,0x20801e,0x208039,0x208088,0x20808e,0x2080cf,0x2080d4,0x2080ed,
+ 0x2080f0,0x2080f7,0x2080fa,0x2080fe,0x208103,0x208117,0x208130,0x208157,0x20816f,0x208173,
+ 0x20818b,0x208190,0x20819b,0x20819e,0x2081cb,0x2081d5,0x2081dd,0x2081de,0x2081e1,0x2081ef,
+ 0x2081f6,0x208200,0x20820b,0x208213,0x208214,0x20821a,0x20823a,0x208244,0x20826d,0x208284,
+ 0x208289,0x208291,0x2082aa,0x2082b0,0x2082d0,0x2082ea,0x2082ef,0x2082f6,0x208356,0x208378,
+ 0x2083f8,0x2083fc,0x208458,0x208493,0x2084b1,0x2084bd,0x2084fb,0x208546,0x208556,0x20855d,
+ 0x208585,0x208598,0x208642,0x208646,0x2086c0,0x208714,0x208722,0x20872e,0x208739,0x20875d,
+ 0x20877b,0x20878c,0x20878e,0x208797,0x208798,0x20879e,0x2087a3,0x2087ae,0x2087bf,0x2087c9,
+ 0x2087da,0x208818,0x20881b,0x20882d,0x20883a,0x208845,0x20884b,0x20884e,0x208855,0x20885a,
+ 0x20886e,0x20889a,0x20889b,0x20889c,0x2088cd,0x2088e0,0x2088ef,0x20890e,0x20890f,0x208926,
+ 0x208935,0x20895a,0x20895c,0x20896b,0x208970,0x20897c,0x2089a5,0x2089b5,0x2089bc,0x2089d5,
+ 0x208a49,0x208a57,0x208a67,0x208a7e,0x208a86,0x208a96,0x208ab6,0x208ac9,0x208ad1,0x208add,
+ 0x208aec,0x208af5,0x208b06,0x208b0f,0x208b11,0x208b45,0x208b52,0x208b6d,0x208b78,0x208b7c,
+ 0x208b7e,0x208b85,0x208b9f,0x208c4b,0x208c53,0x208c7b,0x208cba,0x208cc5,0x208cc9,0x208cd2,
+ 0x208cec,0x208cf5,0x208cf7,0x208d01,0x208d03,0x208d17,0x208d1c,0x208d6e,0x208d91,0x208d9f,
+ 0x208dab,0x208db2,0x208dd5,0x208de7,0x208df1,0x208df2,0x208df4,0x208e01,0x208e0b,0x208e26,
+ 0x208e31,0x208e40,0x208e41,0x208e4d,0x208e4f,0x208e5c,0x208e61,0x208e69,0x208e71,0x208e75,
+ 0x208e77,0x208e89,0x208e90,0x208e95,0x208e9a,0x208ea7,0x208ea9,0x208ead,0x208ee8,0x208ef0,
+ 0x208f07,0x208f18,0x208f25,0x208f27,0x208f2c,0x208f35,0x208f3a,0x208f43,0x208f47,0x208f51,
+ 0x208f55,0x208fa0,0x208fa1,0x208fa2,0x208fa5,0x209004,0x20901b,0x20902f,0x20904c,0x20905b,
+ 0x209070,0x209074,0x209079,0x20908b,0x209098,0x2090a0,0x2090b2,0x2090bd,0x2090c9,0x2090f0,
+ 0x209105,0x209125,0x20915a,0x209167,0x20917a,0x20918a,0x209191,0x209195,0x2091b0,0x2091bb,
+ 0x2091bd,0x2091c2,0x2091c5,0x209200,0x209209,0x209223,0x209276,0x20928e,0x2092af,0x2092bb,
+ 0x2092bc,0x2092c1,0x2092c3,0x2092c5,0x2092c8,0x209314,0x209333,0x209336,0x209358,0x20937f,
+ 0x209382,0x20938a,0x2093bb,0x2093cc,0x2093e6,0x2093f9,0x209402,0x20940d,0x20940e,0x20942e,
+ 0x20944c,0x209588,0x2095a1,0x2095bf,0x2095c6,0x2095c9,0x2095d1,0x2095d2,0x2095e0,0x2095e4,
+ 0x2095e6,0x209624,0x209631,0x209638,0x20963d,0x209654,0x209674,0x20967b,0x20967f,0x209681,
+ 0x209683,0x209689,0x209696,0x2096ae,0x209703,0x20971b,0x209721,0x209722,0x209728,0x209731,
+ 0x209767,0x209776,0x20977d,0x20977f,0x209799,0x20979f,0x2097ac,0x2097b9,0x2097cd,0x2097e0,
+ 0x2097ef,0x209807,0x209826,0x20982e,0x209862,0x209863,0x2098b4,0x2098c5,0x209902,0x209911,
+ 0x209915,0x209935,0x209948,0x209954,0x20995e,0x2099e1,0x209a0c,0x209a10,0x209a23,0x209a41,
+ 0x209a51,0x209abd,0x209abe,0x209b01,0x209b09,0x209b0b,0x209b0d,0x209b0e,0x209b19,0x209b35,
+ 0x209b48,0x209b55,0x209b68,0x209b80,0x209b86,0x209b90,0x209b9d,0x209bb0,0x209bbf,0x209bc8,
+ 0x209bff,0x209c02,0x209c1c,0x209c35,0x209c44,0x209c56,0x209c61,0x209c68,0x209d30,0x209d3d,
+ 0x209d6a,0x209d7b,0x209de5,0x209de9,0x209df3,0x209e7a,0x209e82,0x209e83,0x209e84,0x209eb0,
+ 0x209ee4,0x209ef0,0x209ef2,0x209f09,0x209f0f,0x209f14,0x209f1b,0x209f22,0x209f26,0x209f2a,
+ 0x209f2b,0x209f34,0x209f5a,0x209f6f,0x209f9e,0x209fa5,0x2200f5,0x224e04,0x224ff2,0x227d73,
+ 0x20518d,0x405584,0x405f62,0x406148,0x40681f,0x208ed4,0x2035de,0x209fbf,0x209fc0,0x209fc1,
+ 0x209fc2,0x22a2b2,0x404e0e,0x404e26,0x220158,0x404f73,0x405056,0x4050ed,0x40516b,0x2205b1,
+ 0x8051de,0x4051fd,0x2206ec,0x405264,0x405271,0x605272,0x40533f,0x22b753,0x405440,0x220d58,
+ 0x40559c,0x6055ab,0x405609,0x6056ae,0x8056ae,0x22b75a,0x22b75c,0x4056ce,0x4056ee,0x4057d6,
+ 0x40583d,0x405859,0x40594f,0x605951,0x405960,0x405962,0x405ada,0x405b5a,0x405b73,0x405b7c,
+ 0x805bb3,0x2259cc,0x405e43,0x22b776,0x605ee3,0x405f38,0x405fa1,0x405fdd,0x406162,0x6061b2,
+ 0x4061f8,0x2039a4,0x2039b8,0x222e42,0x22b77c,0x4064f6,0x203a5c,0x2207c8,0x40655e,0x222feb,
+ 0x406587,0x406589,0x2279b4,0x40658e,0x203ac4,0x203acb,0x4065e1,0x406667,0x40666e,0x6066c1,
+ 0x22b782,0x203a85,0x406700,0x406761,0x4067c4,0x406802,0x40693d,0x40695e,0x22b78b,0x406a9c,
+ 0x203bf3,0x2237f1,0x22b794,0x406c38,0x606caa,0x209fcc,0x406de4,0x203d31,0x406e08,0x406e72,
+ 0x606ecb,0x406ed5,0x406edb,0x406f5b,0x606f5b,0x406f64,0x406f74,0x22404b,0x40723e,0x203e40,
+ 0x2038a1,0x6073ca,0x4074bd,0x40755d,0x4075bc,0x22b7ac,0x407608,0x407664,0x407669,0x22b7af,
+ 0x407737,0x40777e,0x4079a7,0x4079b1,0x407abe,0x407be0,0x607c50,0x407d09,0x407db2,0x607db2,
+ 0x407f3e,0x607fe1,0x408012,0x22b7c9,0x4080d6,0x408109,0x408129,0x40820c,0x40821b,0x408240,
+ 0x22b7cf,0x4083d4,0x40840f,0x22b7d2,0x4084ea,0x226c9e,0x408551,0x408563,0x4085cf,0x40864e,
+ 0x408662,0x40868a,0x408842,0x408877,0x408941,0x408b56,0x608b56,0x408b5c,0x20471f,0x227c3c,
+ 0x408c6a,0x408c79,0x608cca,0x408d67,0x20481e,0x408f03,0x608f44,0x608fc5,0x608fd4,0x408ff6,
+ 0x609077,0x809077,0x1e09089,0x100908a,0x4090a8,0x40914d,0x4092e9,0x409335,0x40938b,0x22b7f0,
+ 0x4095cd,0x40962a,0x609698,0x4096a7,0x8097ff,0xa097ff,0x22b765,0x409921,0x809957,0x409ba8,
+ 0x409bae,0x409bb9,0x409c08,0x409c24,0x409c3b,0x22b80d,0x409ce6,0x409dc0,0x409dc2,0x22b817,
+ 0x6098ef,0x42383d,0x607b08,0x40646f,0x607c3e,0x407b75,0x607515,0x608a1d,0x606062,0x407078,
+ 0xc053a9,0x407c82,0x409699,0x408654,0x408171,0x409375,0x4054ac,0x4072e1,0x406897,0x409bab,
+ 0x4053c9,0x406756,0x407526,0x807511,0x407ac8,0x40633a,0x609041,0x4099c1,0x4065a7,0x4091dc,
+ 0x4097ad,0x408292,0x607c7e,0x40723a,0x608805,0x408703,0x209b1d,0x209b2c,0x205002,0x2051de,
+ 0x205307,0x205bec,0x405eca,0x20661e,0x206717,0x20704a,0x4051de,0x205561,0x206c3a,0x207a60,
+ 0x22634c,0x208803,0x2095ab,0x209755,0x229e3d,0x22a61a,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ f,f,f,f,f,f,f,f,f,f,
+ 0x606ea2,0x8061f2,0x608612,0x408b7f,0x204e35,0x204e5c,0x204e63,0x204e68,0x204e74,0x204e75,
+ 0x204e97,0x204eaf,0x204edb,0x204ee2,0x204ee8,0x204eef,0x204efe,0x204f02,0x204f08,0x204f12,
+ 0x204f17,0x204f33,0x204f35,0x204f40,0x204f42,0x204f4b,0x204f4c,0x204f52,0x204f63,0x204f6e,
+ 0x204f71,0x204f79,0x204f81,0x204f89,0x204f8c,0x204f8e,0x204f90,0x204f93,0x204f99,0x204f9f,
+ 0x204fb9,0x204fbb,0x204fbc,0x204fbd,0x204fc0,0x204fc1,0x204fc6,0x204fc8,0x204fcc,0x204fdc,
+ 0x204fe2,0x204ff0,0x204ffc,0x205007,0x20500a,0x205017,0x20501d,0x205030,0x205032,0x205033,
+ 0x205035,0x205045,0x20504a,0x205051,0x205052,0x205059,0x205060,0x205067,0x20506d,0x205071,
+ 0x205081,0x205083,0x205084,0x205086,0x20508a,0x205090,0x20509b,0x20509f,0x2050a0,0x2050a1,
+ 0x2050af,0x2050b0,0x2050b9,0x2050bd,0x2050c0,0x2050d3,0x2050dc,0x2050dd,0x2050df,0x2050e2,
+ 0x2050e4,0x2050f6,0x2050fa,0x4050f2,0x205119,0x20511c,0x20511d,0x205123,0x205127,0x205128,
+ 0x20512c,0x20512d,0x20512f,0x205131,0x205134,0x205139,0x205142,0x20514f,0x205153,0x205158,
+ 0x205166,0x20517e,0x20518e,0x2051bf,0x2051c2,0x2051d2,0x2051d5,0x2051e5,0x2051f2,0x2051f7,
+ 0x205218,0x205222,0x205245,0x205258,0x20525f,0x205280,0x205285,0x205295,0x205296,0x205297,
+ 0x20529a,0x2052a5,0x2052a7,0x2052b0,0x2052b6,0x2052b7,0x2052b8,0x2052bd,0x2052c4,0x2052c6,
+ 0x2052cf,0x2052d4,0x2052dc,0x2052e5,0x2052e8,0x2052ea,0x2052ec,0x2052f4,0x2052f6,0x20530c,
+ 0x205313,0x205318,0x20531b,0x20531e,0x205325,0x205327,0x205328,0x205329,0x20532b,0x20532c,
+ 0x205330,0x20533c,0x205359,0x20535b,0x405365,0x205383,0x205387,0x205388,0x20538e,0x2053a1,
+ 0x2053b5,0x2053b8,0x2053bd,0x2053cf,0x2053d2,0x2053d3,0x2053de,0x4053e0,0x2053e7,0x205402,
+ 0x20541a,0x205421,0x20542f,0x205444,0x205447,0x20544f,0x20545e,0x205464,0x205467,0x205469,
+ 0x20546d,0x20546e,0x205481,0x205483,0x205485,0x205489,0x205491,0x20549f,0x2054ca,0x2054e0,
+ 0x2054f6,0x2054fe,0x20550c,0x20550d,0x205532,0x20553b,0x20553d,0x205549,0x20554d,0x205558,
+ 0x20555a,0x20555b,0x20557f,0x205593,0x205597,0x2055a3,0x2055c1,0x2055cb,0x2055d7,0x2055d8,
+ 0x2055de,0x2055ff,0x405605,0x20560a,0x205619,0x205633,0x20563c,0x205641,0x205643,0x205644,
+ 0x205646,0x205661,0x205662,0x205663,0x205675,0x205684,0x20568b,0x2056a7,0x2056ab,0x2056be,
+ 0x2056cb,0x2056d0,0x2056dc,0x2056e5,0x2056e6,0x2056e7,0x205701,0x205702,0x205711,0x205720,
+ 0x205722,0x205724,0x205725,0x20572a,0x20573f,0x205752,0x205762,0x205767,0x20576e,0x205771,
+ 0x205779,0x20577e,0x205781,0x205794,0x205799,0x20579f,0x2057a1,0x205795,0x2057a7,0x2057a9,
+ 0x2057bd,0x2057dd,0x2057e9,0x2057fe,0x205803,0x205808,0x2057e1,0x20580c,0x20581b,0x20581f,
+ 0x20582d,0x20583f,0x205850,0x205855,0x205868,0x205878,0x205887,0x205888,0x20588c,0x205896,
+ 0x2058a0,0x2058a1,0x2058a2,0x2058a6,0x2058c4,0x2058c2,0x2058c8,0x2058d6,0x2058dd,0x2058e1,
+ 0x405906,0x205912,0x205913,0x20591d,0x205921,0x205928,0x205930,0x205933,0x205935,0x205936,
+ 0x20593f,0x205943,0x205952,0x20595e,0x20596b,0x20596f,0x205972,0x20597b,0x20598c,0x20598e,
+ 0x205995,0x2059a7,0x2059ad,0x2059b0,0x2059b7,0x2059c1,0x2059c4,0x2059ef,0x2059f2,0x2059f4,
+ 0x2059f7,0x205a00,0x205a0e,0x205a12,0x205a1e,0x205a24,0x205a28,0x205a2a,0x205a30,0x205a44,
+ 0x205a45,0x205a48,0x205a4c,0x205a50,0x205a5e,0x205a7b,0x205a90,0x205a93,0x205a96,0x205a99,
+ 0x205abb,0x205ac6,0x205ac8,0x205acf,0x205afd,0x205b01,0x205b4b,0x205b5e,0x205b6e,0x205b86,
+ 0x205b8e,0x205b90,0x205b91,0x205b94,0x205ba8,0x205ba9,0x205bad,0x205baf,0x205bb1,0x205bb2,
+ 0x205bba,0x205bbc,0x205bc1,0x205bcd,0x205bcf,0x205bd9,0x205bda,0x205bef,0x205bf4,0x205c0c,
+ 0x205c17,0x205c26,0x205c2e,0x205c32,0x205c35,0x205c5a,0x205c74,0x205c75,0x205c7b,0x205c7d,
+ 0x205c87,0x205c92,0x205c9d,0x205cb2,0x205cb4,0x205cd7,0x205cee,0x205cf1,0x205cf2,0x205d12,
+ 0x205d23,0x205d3f,0x205d48,0x205d55,0x205d51,0x205d5f,0x205d60,0x205d62,0x205d64,0x205d79,
+ 0x205d7a,0x205d7f,0x205d8a,0x205d93,0x205d95,0x205d9b,0x205d9f,0x205dab,0x205dc3,0x205dce,
+ 0x205dd9,0x205e07,0x205e0d,0x205e20,0x205e4b,0x205e50,0x205e51,0x205e5c,0x205e70,0x205e8e,
+ 0x205ea2,0x205ea4,0x205eb1,0x205ecc,0x205ece,0x205edc,0x205ede,0x205ee5,0x205eeb,0x205f06,
+ 0x205f19,0x205f24,0x205f2b,0x205f2c,0x205f2e,0x205f30,0x205f3f,0x205f44,0x205f5b,0x205f60,
+ 0x205f6f,0x205f74,0x205f75,0x205f78,0x205f7a,0x205f8d,0x205f96,0x205f9d,0x205fab,0x205fb0,
+ 0x205fb1,0x205fc8,0x205fd0,0x205fd1,0x205fe8,0x205fec,0x205ff2,0x205ff6,0x205ffa,0x20600a,
+ 0x206013,0x20601f,0x20602d,0x206040,0x206048,0x206051,0x206056,0x206057,0x206071,0x20607e,
+ 0x206082,0x206086,0x206088,0x20608e,0x206091,0x206093,0x206098,0x40609e,0x2060a2,0x2060a5,
+ 0x2060b7,0x2060c2,0x2060c9,0x2060ca,0x2060ce,0x2060cf,0x2060e2,0x2060e5,0x2060fc,0x206102,
+ 0x206107,0x20610c,0x206117,0x206122,0x206131,0x206135,0x206139,0x206145,0x206149,0x20616c,
+ 0x206172,0x206178,0x206180,0x206181,0x206183,0x206184,0x20618b,0x20619c,0x2061a0,0x2061aa,
+ 0x2061c0,0x2061c1,0x2061ce,0x2061cf,0x2061de,0x2061e1,0x2061e7,0x2061e9,0x2061ec,0x2061ed,
+ 0x2061ef,0x206201,0x206203,0x20621c,0x206220,0x206227,0x20622b,0x206242,0x206244,0x206250,
+ 0x206254,0x20625c,0x20627d,0x20628d,0x20628e,0x20628f,0x2062b3,0x2062b6,0x2062b7,0x2062ba,
+ 0x2062be,0x2062bf,0x2062ce,0x2062ea,0x2062f2,0x206304,0x20630b,0x206313,0x206329,0x20632d,
+ 0x20634a,0x206352,0x206354,0x206358,0x20635b,0x206366,0x20636d,0x206378,0x206395,0x20639a,
+ 0x2063a4,0x2063a6,0x2063ad,0x2063c1,0x2063c5,0x2063c8,0x2063ce,0x2063d3,0x2063f3,0x20640a,
+ 0x206430,0x20644b,0x20644f,0x206453,0x20645c,0x206461,0x206463,0x206485,0x20648f,0x20649b,
+ 0x2064a1,0x2064a3,0x2064a6,0x2064a8,0x2064bd,0x2064c9,0x2064d1,0x2064e9,0x2064ea,0x2064f5,
+ 0x206501,0x206508,0x206509,0x20650a,0x206513,0x206526,0x206531,0x20653a,0x20653c,0x20653d,
+ 0x206543,0x206550,0x206552,0x20655f,0x20657d,0x206598,0x2065a0,0x2065a3,0x2065a6,0x2065ae,
+ 0x2065b3,0x2065d6,0x2065d8,0x4065df,0x2065f4,0x2065f5,0x2065fe,0x2065ff,0x20660d,0x206611,
+ 0x206612,0x206616,0x20661d,0x206623,0x206626,0x206629,0x206639,0x206637,0x206640,0x206646,
+ 0x20664a,0x206658,0x206660,0x206675,0x20667f,0x206679,0x20667c,0x20669a,0x20669b,0x20669c,
+ 0x20669f,0x4066b5,0x2066c2,0x2066c3,0x2066cc,0x2066ce,0x2066d4,0x2066df,0x2066eb,0x2066ee,
+ 0x206707,0x20671c,0x206720,0x206722,0x20673e,0x206745,0x20676c,0x206784,0x20678e,0x206796,
+ 0x206799,0x2067bc,0x2067bd,0x2067c2,0x2067c5,0x2067c9,0x2067dc,0x2067e1,0x2067e6,0x2067f2,
+ 0x2067f6,0x206814,0x206819,0x206827,0x20682f,0x20683f,0x20684a,0x206858,0x20686f,0x206870,
+ 0x206871,0x206879,0x20687b,0x206888,0x2068a1,0x2068a9,0x2068ae,0x2068d1,0x2068d3,0x2068dc,
+ 0x2068dd,0x2068ea,0x2068f6,0x2068fd,0x206906,0x206909,0x206910,0x206916,0x206931,0x206945,
+ 0x20694e,0x206966,0x206970,0x206971,0x20697b,0x20698d,0x2069a1,0x2069b8,0x2069c5,0x2069c8,
+ 0x4069fe,0x206a00,0x206a03,0x206a20,0x206a24,0x206a37,0x406a55,0x206a6a,0x206a81,0x206a86,
+ 0x206a87,0x206a9b,0x206ab0,0x206ab1,0x206ab4,0x206abe,0x206abf,0x206acc,0x206ad5,0x206ad6,
+ 0x206af0,0x206afc,0x206b02,0x206b06,0x206b07,0x206b09,0x206b28,0x206b2b,0x206b36,0x206b4d,
+ 0x206b52,0x206b5d,0x206b6b,0x206b6e,0x206b70,0x206b85,0x206b97,0x206b9f,0x206ba0,0x206ba2,
+ 0x206ba3,0x206ba8,0x206bac,0x206bb8,0x206bb9,0x206bc3,0x206bc4,0x206be3,0x206c12,0x206c19,
+ 0x206c1f,0x206c26,0x206c27,0x206c28,0x206c2e,0x206c3b,0x206c4b,0x206c4f,0x206c6b,0x206c78,
+ 0x206c87,0x206c9f,0x206cb0,0x206cb2,0x206ccd,0x206ccf,0x206cd1,0x206ce7,0x206cf2,0x206cf4,
+ 0x206d07,0x206d0f,0x206d13,0x206d1a,0x206d28,0x206d5f,0x206d67,0x206d92,0x206d97,0x206db7,
+ 0x206dbd,0x206de0,0x206de2,0x206de5,0x206def,0x206df4,0x206e00,0x206e04,0x206e3b,0x206e52,
+ 0x206e5d,0x206e62,0x206e68,0x206e8d,0x206e99,0x206ea0,0x206ead,0x206eae,0x206eb3,0x206ebb,
+ 0x206ec0,0x206ec8,0x206ecd,0x206ecf,0x206eed,0x206eee,0x206f04,0x206f08,0x206f0d,0x206f16,
+ 0x206f1b,0x206f3b,0x206f2d,0x206f4f,0x206f53,0x206f5d,0x206f6c,0x206f83,0x206f93,0x206fa6,
+ 0x206fb0,0x206fc5,0x206fe8,0x206ffd,0x207017,0x20702f,0x207034,0x207037,0x207044,0x207048,
+ 0x207055,0x207094,0x207096,0x20709b,0x2070b4,0x2070fa,0x207105,0x20710b,0x20712d,0x207138,
+ 0x207141,0x20714b,0x407152,0x207157,0x20715a,0x20718c,0x20719a,0x2071b0,0x2071bf,0x2071c0,
+ 0x2071cc,0x2071da,0x2071f8,0x207208,0x207209,0x207213,0x20721a,0x207224,0x20722f,0x207245,
+ 0x20724e,0x20725e,0x20726b,0x207271,0x20727b,0x20727c,0x207289,0x207293,0x2072a8,0x2072d5,
+ 0x2072d6,0x2072d8,0x2072df,0x2072fe,0x20730d,0x207313,0x207332,0x207335,0x207356,0x20735d,
+ 0x20735e,0x20735f,0x207360,0x207369,0x207379,0x207380,0x20738e,0x207390,0x207393,0x207397,
+ 0x2073aa,0x2073ad,0x2073c6,0x2073cc,0x2073d3,0x2073dd,0x2073e6,0x2073f7,0x2073fb,0x2073ff,
+ 0x207400,0x207411,0x20742d,0x207467,0x207468,0x20746e,0x20748f,0x207491,0x20749a,0x2074ae,
+ 0x2074b1,0x2074b2,0x2074cc,0x2074d0,0x2074d3,0x4074d8,0x2074db,0x2074e8,0x2074ea,0x4074ef,
+ 0x2074fc,0x207506,0x207512,0x207527,0x207529,0x207536,0x207539,0x207543,0x207547,0x207557,
+ 0x20755f,0x207561,0x20757b,0x20757c,0x207585,0x207595,0x20759c,0x2075ba,0x207612,0x207623,
+ 0x207629,0x207639,0x20763a,0x207640,0x207644,0x207659,0x207685,0x20768c,0x20768d,0x20769f,
+ 0x2076a2,0x2076a3,0x2076c1,0x2076cb,0x4076d4,0x2076e0,0x2076f6,0x207706,0x207712,0x207714,
+ 0x207715,0x20771c,0x20772e,0x20773d,0x207742,0x207752,0x207756,0x207757,0x207770,0x207773,
+ 0x207774,0x40778d,0x4077a2,0x2077ae,0x2077b1,0x2077b5,0x2077c3,0x2077d2,0x2077d5,0x2077f8,
+ 0x20780e,0x207811,0x20781d,0x207823,0x207844,0x207848,0x20784c,0x207852,0x20785e,0x207860,
+ 0x207861,0x207863,0x20788f,0x2078a8,0x2078ac,0x2078b2,0x2078bd,0x2078bf,0x2078c7,0x2078d2,
+ 0x2078d6,0x2078db,0x2078df,0x2078ea,0x2078f3,0x2078f6,0x2078ff,0x207906,0x20791a,0x20791e,
+ 0x207920,0x207929,0x20792d,0x207935,0x207944,0x20794b,0x20794f,0x207951,0x207969,0x20797b,
+ 0x20797e,0x20798c,0x207991,0x207993,0x20799c,0x2079a8,0x2079af,0x2079cf,0x2079dd,0x2079e0,
+ 0x2079e2,0x2079e5,0x2079f1,0x2079f8,0x2079fc,0x207a07,0x207a21,0x207a27,0x207a2b,0x207a2f,
+ 0x207a34,0x207a35,0x207a48,0x207a55,0x207a65,0x207a7e,0x207a8b,0x207a91,0x207a9e,0x207ac9,
+ 0x207adb,0x207ae9,0x207aec,0x207af1,0x207afb,0x207b1f,0x207b23,0x207b29,0x207b30,0x207b34,
+ 0x207b3f,0x207b40,0x207b6a,0x207b84,0x207b89,0x207b8e,0x207b96,0x207ba5,0x207bb2,0x207bb6,
+ 0x207bba,0x207bbb,0x207bbd,0x207bc2,0x207bc8,0x207bdb,0x207bf4,0x207bf5,0x207bf9,0x207bfa,
+ 0x207c02,0x207c04,0x207c06,0x207c0c,0x207c19,0x207c1b,0x207c25,0x207c2c,0x207c34,0x207c39,
+ 0x207c3a,0x207c46,0x207c55,0x207c5a,0x207c63,0x407c69,0x207c7c,0x207c86,0x207cb0,0x207cbb,
+ 0x207ccf,0x207cd4,0x207ce9,0x207d0f,0x207d11,0x207d16,0x207d26,0x207d2a,0x207d2d,0x207d51,
+ 0x207d57,0x207d65,0x207d67,0x207d78,0x207d7b,0x207d81,0x207d96,0x207dc3,0x207dc4,0x207dc5,
+ 0x207dc6,0x207dcd,0x207dce,0x207e00,0x207de2,0x207dea,0x207ded,0x207dfa,0x207e1c,0x207e2d,
+ 0x207e33,0x207e3f,0x207e4e,0x207e50,0x207e58,0x207e5f,0x207e65,0x207e95,0x207e9d,0x207e9e,
+ 0x207f3f,0x207f5c,0x207f66,0x407f80,0x207f8d,0x207f8f,0x207fa6,0x207faa,0x207fb4,0x207fbc,
+ 0x207fc0,0x207fc8,0x207fe8,0x20800f,0x208013,0x20801d,0x20801f,0x208020,0x20802e,0x208034,
+ 0x20803e,0x208040,0x208044,0x208064,0x20806d,0x208081,0x2080b9,0x2080c8,0x2080cd,0x2080d2,
+ 0x2080ee,0x2080f2,0x2080f6,0x2080f9,0x20810b,0x20811c,0x208120,0x20813c,0x208145,0x208147,
+ 0x208152,0x208161,0x208177,0x208186,0x20818e,0x208196,0x2081a2,0x2081ae,0x2081c5,0x2081ce,
+ 0x2081eb,0x2081f0,0x2081f1,0x2081f2,0x2081f5,0x2081f8,0x408200,0x20820f,0x20821d,0x208228,
+ 0x208243,0x20824e,0x208251,0x208256,0x208267,0x20827b,0x208280,0x208281,0x208287,0x208294,
+ 0x208296,0x208298,0x20829a,0x20829b,0x2082a0,0x2082da,0x2082e0,0x2082e4,0x2082ed,0x20830a,
+ 0x20830b,0x20831e,0x20831f,0x208321,0x20832c,0x20832e,0x208333,0x208337,0x20833d,0x208342,
+ 0x20834d,0x20834e,0x208370,0x208380,0x208382,0x208384,0x208399,0x20839c,0x2083a6,0x2083ac,
+ 0x2083be,0x208353,0x2083e8,0x208419,0x2083ad,0x20842f,0x208445,0x208447,0x20844d,0x208456,
+ 0x40845c,0x208460,0x208464,0x208467,0x20846a,0x208474,0x20847d,0x208492,0x208495,0x2084a9,
+ 0x2084aa,0x2084c7,0x2084c8,0x2084cc,0x2084f2,0x2084f7,0x208502,0x208503,0x208507,0x20850e,
+ 0x208510,0x20851c,0x208522,0x208527,0x20852a,0x208533,0x208536,0x20853f,0x208550,0x208552,
+ 0x20855c,0x40855d,0x20855f,0x208560,0x208579,0x208589,0x20858b,0x2085a0,0x2085a5,0x2085a7,
+ 0x2085b4,0x2085b6,0x2085b8,0x2085bd,0x2085be,0x2085bf,0x2085c2,0x2085da,0x2085e0,0x2085e8,
+ 0x2085f3,0x2085fc,0x20860d,0x20860e,0x208619,0x20861b,0x208636,0x20863a,0x20863d,0x208658,
+ 0x208659,0x20865d,0x208660,0x208661,0x208664,0x208669,0x208676,0x208696,0x20869a,0x2086a1,
+ 0x2086a6,0x2086ad,0x2086b4,0x2086b5,0x2086b7,0x2086b9,0x2086bf,0x2086c5,0x2086d2,0x2086da,
+ 0x2086dc,0x2086e0,0x2086e5,0x2086e7,0x208688,0x208704,0x20870f,0x20872f,0x208732,0x20873c,
+ 0x20873d,0x208745,0x20874d,0x208761,0x20876f,0x208783,0x208784,0x208785,0x208786,0x208790,
+ 0x208795,0x4087a3,0x2087b1,0x2087c8,0x2087ca,0x2087d5,0x2087d9,0x2087dc,0x2087e2,0x2087e4,
+ 0x2087f1,0x2087f3,0x2087f8,0x2087fa,0x2087ff,0x208809,0x208819,0x208812,0x20881a,0x20881e,
+ 0x208830,0x208835,0x208841,0x208843,0x208848,0x208849,0x40884b,0x208851,0x20885c,0x208860,
+ 0x208871,0x208879,0x20887b,0x208880,0x20889f,0x2088a8,0x2088ba,0x2088cb,0x2088cc,0x2088de,
+ 0x2088e7,0x2088f7,0x20890d,0x208915,0x208916,0x208920,0x208928,0x208931,0x20893a,0x208946,
+ 0x20894f,0x208952,0x208957,0x20895b,0x208961,0x208963,0x20896e,0x208973,0x208975,0x20897a,
+ 0x20897d,0x20898d,0x208995,0x20899b,0x20899c,0x2089a0,0x2089b4,0x2089b6,0x2089d7,0x2089e9,
+ 0x2089ed,0x2089f9,0x208a04,0x208a05,0x208a1e,0x208a20,0x208a24,0x208a26,0x208a2b,0x208a2c,
+ 0x208a2f,0x208a3d,0x208a40,0x208a43,0x208a53,0x208a56,0x208a5c,0x208a65,0x208a76,0x208a77,
+ 0x208a7a,0x208a7b,0x208a80,0x208a83,0x208a8b,0x208a8f,0x208a92,0x208a97,0x208a99,0x208a9f,
+ 0x208aa9,0x208aaf,0x208ab3,0x208abb,0x208ac3,0x208ac6,0x208ac8,0x208aca,0x208ad3,0x208ad4,
+ 0x208ad5,0x208af0,0x208aff,0x208b0b,0x208b1e,0x208b30,0x208b3c,0x208b42,0x208b48,0x208b4d,
+ 0x208b63,0x208b79,0x208b84,0x208b8d,0x208b8f,0x208c38,0x208c3e,0x208c51,0x208c58,0x208c5b,
+ 0x208c5d,0x208c59,0x208c63,0x208c64,0x208c66,0x208c75,0x208c76,0x208c7e,0x208c86,0x208c87,
+ 0x208c8b,0x208c90,0x408c9b,0x208c9c,0x208cb9,0x208cc6,0x208ccb,0x208ccf,0x208cdd,0x208ce8,
+ 0x208cef,0x208cf2,0x208cff,0x208d65,0x208d7f,0x208d82,0x208d88,0x208d90,0x208d9e,0x208da0,
+ 0x208dac,0x208db5,0x208db7,0x208db9,0x208dbb,0x208dc0,0x208dc5,0x208dc7,0x208dca,0x208dd4,
+ 0x208de5,0x208df0,0x208dbc,0x208e04,0x208e05,0x208e11,0x208e33,0x208e37,0x208e38,0x208e4e,
+ 0x208e5b,0x208e5d,0x208e5e,0x208e79,0x208e82,0x208e83,0x208e9b,0x208e9d,0x208ea2,0x208eba,
+ 0x208ec1,0x208ec3,0x208ec4,0x208ec7,0x208edc,0x208eee,0x208ef1,0x208ef7,0x208eed,0x208f02,
+ 0x208f0f,0x208f10,0x208f16,0x208f20,0x208f21,0x208f23,0x208f28,0x208f2e,0x208f34,0x208f37,
+ 0x208f41,0x208f4f,0x208f52,0x208f53,0x208f5d,0x208f5e,0x208f65,0x208f9d,0x208fb8,0x208fbe,
+ 0x208fc0,0x208fcb,0x208fd0,0x208fd2,0x208fe3,0x208ffe,0x209018,0x209028,0x209029,0x20902a,
+ 0x209033,0x209034,0x20903f,0x209062,0x209066,0x20906c,0x20908e,0x2090a5,0x2090cc,0x2090d5,
+ 0x2090d8,0x2090d9,0x2090e5,0x2090d2,0x209108,0x20910d,0x209110,0x20911a,0x209120,0x209129,
+ 0x20912e,0x209136,0x20913c,0x209143,0x20914f,0x209153,0x20916d,0x20917b,0x209181,0x209186,
+ 0x209193,0x209194,0x209198,0x2091a1,0x2091a6,0x2091bf,0x2091d3,0x2091d4,0x2091d9,0x2091e9,
+ 0x2091ea,0x2091ef,0x2091f9,0x2091fd,0x209204,0x209205,0x20920c,0x209212,0x209213,0x209218,
+ 0x20921c,0x20921d,0x209224,0x209225,0x209226,0x20922e,0x20922f,0x209230,0x209235,0x209236,
+ 0x20923e,0x209246,0x20924d,0x209258,0x20925c,0x20925d,0x209269,0x20926e,0x20926f,0x209270,
+ 0x209275,0x209279,0x20927b,0x20928a,0x209292,0x2092a0,0x2092a4,0x2092a5,0x2092a8,0x2092b6,
+ 0x2092b8,0x2092ba,0x2092bd,0x2092c7,0x2092cd,0x2092d8,0x2092dc,0x2092dd,0x2092e1,0x2092e3,
+ 0x2092e8,0x2092ec,0x2092ee,0x2092f0,0x209300,0x209308,0x20931c,0x209324,0x20932a,0x209334,
+ 0x209337,0x209350,0x209355,0x20935e,0x209367,0x209369,0x20936f,0x209374,0x209376,0x20937a,
+ 0x20937d,0x209380,0x209381,0x20938d,0x209392,0x209395,0x209398,0x4093a1,0x2093a6,0x2093a8,
+ 0x2093ab,0x2093b4,0x2093b5,0x2093b6,0x2093c4,0x2093c5,0x2093c9,0x2093cb,0x2093cd,0x2093d3,
+ 0x2093d9,0x2093f7,0x209401,0x209408,0x209415,0x20941f,0x20942f,0x20943d,0x209443,0x209459,
+ 0x20945c,0x20945f,0x209461,0x209468,0x20946e,0x209484,0x209483,0x20957e,0x209584,0x20959d,
+ 0x20959e,0x2095ba,0x2095d9,0x2095dd,0x2095df,0x20961e,0x209622,0x209625,0x209626,0x209637,
+ 0x209639,0x20963a,0x209652,0x209656,0x209657,0x20966e,0x20967c,0x20967e,0x209691,0x20969f,
+ 0x2096a6,0x2096ca,0x4096da,0x2096df,0x2096fa,0x209705,0x20971a,0x20971d,0x409721,0x20974a,
+ 0x209758,0x209777,0x209778,0x20977b,0x209780,0x209789,0x209797,0x2097b8,0x2097bc,0x2097bf,
+ 0x2097c4,0x2097c5,0x2097c7,0x2097ca,0x2097ce,0x2097d0,0x2097d7,0x2097dd,0x2097e4,0x2097f7,
+ 0x2097f8,0x2097fa,0x209819,0x20981c,0x209820,0x20982f,0x209835,0x209844,0x20984a,0x209851,
+ 0x20986a,0x2098ae,0x2098cc,0x2098e6,0x2098f6,0x209907,0x20991f,0x209922,0x209926,0x20992b,
+ 0x209934,0x209939,0x209947,0x209959,0x20995b,0x20999b,0x20999d,0x20999f,0x2099b0,0x2099b2,
+ 0x2099b5,0x2099d3,0x2099da,0x2099dc,0x2099e7,0x2099ea,0x2099eb,0x2099ec,0x2099f4,0x2099f5,
+ 0x2099fd,0x2099fe,0x209a04,0x209a0b,0x209a1e,0x209a22,0x209a33,0x209a35,0x209a47,0x409a4a,
+ 0x209a4b,0x209a54,0x209a5d,0x209aaa,0x209aac,0x209aae,0x209ab2,0x209ab4,0x209abb,0x209abf,
+ 0x209ac8,0x209ad7,0x209adb,0x209ae4,0x209ae7,0x209aec,0x209af2,0x209af3,0x209af5,0x209afa,
+ 0x209afd,0x209aff,0x209b00,0x209b04,0x209b05,0x209b1b,0x209b26,0x409b35,0x209b37,0x209b39,
+ 0x209b3a,0x209b4c,0x209b56,0x209b57,0x209b5b,0x209b61,0x209b6a,0x209b6d,0x209b6e,0x209b78,
+ 0x209b7f,0x209b85,0x209b87,0x209b89,0x209b8b,0x209b8d,0x209b94,0x209b9a,0x209ba9,0x209bb7,
+ 0x209bbc,0x209bd0,0x209bf9,0x209c0f,0x209c11,0x209c1e,0x209c26,0x209c28,0x209c3d,0x209c43,
+ 0x209c4e,0x209c5e,0x209c7b,0x209cf7,0x209cf9,0x209d1c,0x209d2f,0x209d33,0x209d34,0x209d3a,
+ 0x209d3c,0x209d45,0x209d53,0x209d54,0x209d65,0x209d83,0x209d86,0x209d8e,0x209d92,0x209d93,
+ 0x209d95,0x209d97,0x209d98,0x209daa,0x209dae,0x409dbf,0x209dca,0x209dd4,0x209dd5,0x209dde,
+ 0x209dee,0x209df0,0x209dfe,0x209e0e,0x209e10,0x209e11,0x209e12,0x209e16,0x209e87,0x209e8e,
+ 0x209e8f,0x209e96,0x209e98,0x209eae,0x209eb3,0x209ec6,0x209ec8,0x209ecb,0x209ed5,0x209eec,
+ 0x209eed,0x209ef1,0x209ef5,0x209ef8,0x209f11,0x209f16,0x209f1a,0x209f1f,0x209f31,0x209f32,
+ 0x209f3c,0x209f3f,0x209f43,0x209f44,0x209f47,0x209f56,0x209f5e,0x209f6e,0x209f73,0x209f7a,
+ 0x209f7d,0x209f8f,0x209f91,0x209f92,0x209f96,0x209fa1,0x209fa3
}}
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-jfmglue.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-jfmglue.lua
index d3f9d99aa28..84249a7ad1b 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltj-jfmglue.lua
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-jfmglue.lua
@@ -3,17 +3,17 @@
--
luatexbase.provides_module({
name = 'luatexja.jfmglue',
- date = '2020/01/23',
+ date = '2020-07-30',
description = 'Insertion process of JFM glues, [x]kanjiskip and others',
})
luatexja.jfmglue = luatexja.jfmglue or {}
-luatexja.load_module('base'); local ltjb = luatexja.base
-luatexja.load_module('stack'); local ltjs = luatexja.stack
-luatexja.load_module('jfont'); local ltjf = luatexja.jfont
-luatexja.load_module('direction'); local ltjd = luatexja.direction
-luatexja.load_module('setwidth'); local ltjw = luatexja.setwidth
-luatexja.load_module('lotf_aux'); local ltju = luatexja.lotf_aux
+luatexja.load_module 'base'; local ltjb = luatexja.base
+luatexja.load_module 'stack'; local ltjs = luatexja.stack
+luatexja.load_module 'jfont'; local ltjf = luatexja.jfont
+luatexja.load_module 'direction'; local ltjd = luatexja.direction
+luatexja.load_module 'setwidth'; local ltjw = luatexja.setwidth
+luatexja.load_module 'lotf_aux'; local ltju = luatexja.lotf_aux
local pairs = pairs
--local to_node = node.direct.tonode
@@ -51,25 +51,25 @@ local node_tail = node.direct.tail
local node_free = node.direct.free
local node_remove = node.direct.remove
-local id_glyph = node.id('glyph')
-local id_hlist = node.id('hlist')
-local id_vlist = node.id('vlist')
-local id_rule = node.id('rule')
-local id_ins = node.id('ins')
-local id_mark = node.id('mark')
-local id_adjust = node.id('adjust')
-local id_disc = node.id('disc')
-local id_whatsit = node.id('whatsit')
-local id_math = node.id('math')
-local id_glue = node.id('glue')
-local id_kern = node.id('kern')
-local id_penalty = node.id('penalty')
+local id_glyph = node.id 'glyph'
+local id_hlist = node.id 'hlist'
+local id_vlist = node.id 'vlist'
+local id_rule = node.id 'rule'
+local id_ins = node.id 'ins'
+local id_mark = node.id 'mark'
+local id_adjust = node.id 'adjust'
+local id_disc = node.id 'disc'
+local id_whatsit = node.id 'whatsit'
+local id_math = node.id 'math'
+local id_glue = node.id 'glue'
+local id_kern = node.id 'kern'
+local id_penalty = node.id 'penalty'
local id_jglyph = 512 -- Japanese character
local id_box_like = 256 -- vbox, shifted hbox
local id_pbox = 257 -- already processed nodes (by \unhbox)
local id_pbox_w = 258 -- cluster which consists of a whatsit
-local sid_user = node.subtype('user_defined')
+local sid_user = node.subtype 'user_defined'
local ITALIC = luatexja.icflag_table.ITALIC
local PACKED = luatexja.icflag_table.PACKED
@@ -112,9 +112,9 @@ do
slow_find_char_class = function (c, m, oc)
local cls = ltjf_find_char_class(oc, m)
if oc~=c and c and cls==0 then
- return ltjf_find_char_class(c, m)
+ return ltjf_find_char_class(c, m)
else
- return cls
+ return cls
end
end
end
@@ -140,7 +140,7 @@ function add_penalty(p,e)
pp = pp + e
if pp>=10000 then setpenalty(p, 10000)
elseif pp<=-10000 then setpenalty(p, -10000)
- else setpenalty(p, pp) end
+ else setpenalty(p, pp) end
end
end
end
@@ -177,59 +177,51 @@ local function check_box(box_ptr, box_end)
while p and p~=box_end do
local pid = getid(p)
if pid==id_kern and getsubtype(p)==2 then
- p = node_next(node_next(node_next(p))); pid = getid(p) -- p must be glyph_node
+ p = node_next(node_next(node_next(p))); pid = getid(p) -- p must be glyph_node
end
if pid==id_glyph then
- repeat
- if find_first_char then
- first_char = p; find_first_char = false
- end
- last_char = p; found_visible_node = true; p=node_next(p)
- if (not p) or p==box_end then
- return found_visible_node
- end
- until getid(p)~=id_glyph
- pid = getid(p) -- p must be non-nil
+ repeat
+ if find_first_char then first_char = p; find_first_char = false end
+ last_char = p; found_visible_node = true; p=node_next(p)
+ if (not p) or p==box_end then return found_visible_node end
+ until getid(p)~=id_glyph
+ pid = getid(p) -- p must be non-nil
end
if pid==id_kern then
- local pa = get_attr_icflag(p)
- if pa==IC_PROCESSED then
- -- do nothing
- elseif getsubtype(p)==2 then
- p = node_next(node_next(p));
- -- Note that another node_next will be executed outside this if-statement.
- else
- found_visible_node = true
- find_first_char = false; last_char = nil
- end
+ local pa = get_attr_icflag(p)
+ if pa==IC_PROCESSED then
+ -- do nothing
+ elseif getsubtype(p)==2 then
+ p = node_next(node_next(p));
+ -- Note that another node_next will be executed outside this if-statement.
+ else
+ found_visible_node = true
+ find_first_char = false; last_char = nil
+ end
elseif pid==id_hlist then
- if PACKED == get_attr_icflag(p) then
- local s = ltjd_glyph_from_packed(p)
- if find_first_char then
- first_char = s; find_first_char = false
- end
- last_char = s; found_visible_node = true
- else
- if getfield(p, 'shift')==0 then
- last_char = nil
- if check_box(getlist(p), nil) then found_visible_node = true end
- find_first_char = false
- else
- find_first_char = false; last_char = nil
- end
- end
+ if PACKED == get_attr_icflag(p) then
+ local s = ltjd_glyph_from_packed(p)
+ if find_first_char then first_char = s; find_first_char = false end
+ last_char = s; found_visible_node = true
+ else
+ if getfield(p, 'shift')==0 then
+ last_char = nil
+ if check_box(getlist(p), nil) then found_visible_node = true end
+ find_first_char = false
+ else
+ find_first_char = false; last_char = nil
+ end
+ end
elseif pid==id_math then
- if find_first_char then
- first_char = p; find_first_char = false
- end
- last_char = p; found_visible_node = true
+ if find_first_char then first_char = p; find_first_char = false end
+ last_char = p; found_visible_node = true
elseif pid==id_rule and get_attr_icflag(p)==PACKED then
- -- do nothing
+ -- do nothing
elseif not (pid==id_ins or pid==id_mark
- or pid==id_adjust or pid==id_whatsit
- or pid==id_penalty) then
- found_visible_node = true
- find_first_char = false; last_char = nil
+ or pid==id_adjust or pid==id_whatsit
+ or pid==id_penalty) then
+ found_visible_node = true
+ find_first_char = false; last_char = nil
end
p = node_next(p)
end
@@ -242,13 +234,13 @@ check_box_high = function (Nx, box_ptr, box_end)
local first_char = first_char
if first_char then
if getid(first_char)==id_glyph then
- if if_lang_ja(first_char) then
- set_np_xspc_jachar_hbox(Nx, first_char)
- else
- set_np_xspc_alchar(Nx, getchar(first_char),first_char, 1)
- end
- else -- math_node
- set_np_xspc_alchar(Nx, -1,first_char)
+ if if_lang_ja(first_char) then
+ set_np_xspc_jachar_hbox(Nx, first_char)
+ else
+ set_np_xspc_alchar(Nx, getchar(first_char),first_char, 1)
+ end
+ else -- math_node
+ set_np_xspc_alchar(Nx, -1,first_char)
end
end
end
@@ -258,14 +250,14 @@ end
-------------------- Np の計算と情報取得
luatexbase.create_callback("luatexja.jfmglue.whatsit_getinfo", "data",
- function (Np, lp, Nq)
- if Np.nuc then return Np
- else
- return Np -- your code
- end
- end)
+ function (Np, lp, Nq)
+ if Np.nuc then return Np
+ else
+ return Np -- your code
+ end
+ end)
luatexbase.create_callback("luatexja.jfmglue.whatsit_after", "data",
- function (stat, Nq, Np) return false end)
+ function (stat, Nq, Np) return false end)
-- calc next Np
local calc_np
@@ -292,12 +284,12 @@ local function calc_np_pbox(lp, last)
local lpi = getid(lp)
if lpa==PACKED then
if lpi==id_rule then lp = node_next(lp) end
- nc, lp = lp, node_next(lp)
+ nc, lp = lp, node_next(lp)
elseif lpi==id_hlist or lpi==id_vlist then
- head, lp, nc = ltjd_make_dir_whatsit(head, lp, list_dir, 'jfm pbox')
- Np.first = first and nc or Np.first
+ head, lp, nc = ltjd_make_dir_whatsit(head, lp, list_dir, 'jfm pbox')
+ Np.first = first and nc or Np.first
else
- nc, lp = lp, node_next(lp)
+ nc, lp = lp, node_next(lp)
end
first, lpa = false, (lp and has_attr(lp, attr_icflag) or 0)
-- get_attr_icflag() ではいけない!
@@ -317,13 +309,13 @@ do -- 002 ---------------------------------------
local font_getfont = font.getfont
local function calc_np_notdef(lp)
if not font_getfont(getfont(lp)).characters[getchar(lp)] then
- local ln = node_next(lp)
- if ltju.specified_feature(getfont(lp), 'notdef') and ln and getid(ln)==id_glyph then
- set_attr(lp, attr_icflag, PROCESSED)
- set_attr(ln, attr_jchar_code, has_attr(lp, attr_jchar_code) or getchar(lp))
- set_attr(ln, attr_jchar_class, has_attr(lp, attr_jchar_class) or 0)
- Np.nuc, lp = ln, ln
- end
+ local ln = node_next(lp)
+ if ltju.specified_feature(getfont(lp), 'notdef') and ln and getid(ln)==id_glyph then
+ set_attr(lp, attr_icflag, PROCESSED)
+ set_attr(ln, attr_jchar_code, has_attr(lp, attr_jchar_code) or getchar(lp))
+ set_attr(ln, attr_jchar_class, has_attr(lp, attr_jchar_class) or 0)
+ Np.nuc, lp = ln, ln
+ end
end
return lp
end
@@ -351,73 +343,73 @@ function calc_np_aux_glyph_common(lp, acc_flag)
setfield(lp, 'yoffset', getfield(lp, 'yoffset') - y_adjust)
lp = node_next(lp)
for lx in traverse(lp) do
- local lai = get_attr_icflag(lx)
- if lx==last or lai>=PACKED then
- lp=lx; break
- else
- local lid = getid(lx)
- if lid==id_glyph and not if_lang_ja(lx) then
- -- 欧文文字
- last_glyph = lx; set_attr(lx, attr_icflag, PROCESSED); Np.last = lx
- y_adjust = has_attr(lx,attr_ablshift) or 0
- node_depth = max(getfield(lx, 'depth') + min(y_adjust, 0), node_depth)
- adj_depth = (y_adjust>0) and max(getfield(lx, 'depth') + y_adjust, adj_depth) or adj_depth
- setfield(lx, 'yoffset', getfield(lx, 'yoffset') - y_adjust)
- elseif lid==id_kern then
- local ls = getsubtype(lx)
- if ls==2 then -- アクセント用の kern
- set_attr(lx, attr_icflag, PROCESSED)
- lx = node_next(lx) -- lx: アクセント本体
- if getid(lx)==id_glyph then
- setfield(lx, 'yoffset', getfield(lx, 'yoffset') - (has_attr(lx,attr_ablshift) or 0))
- else -- アクセントは上下にシフトされている
- setfield(lx, 'shift', getfield(lx, 'shift') + (has_attr(lx,attr_ablshift) or 0))
- end
- lx = node_next(node_next(lx))
- elseif ls==0 then
- Np.last = lx
- elseif (ls==3) or (lai==ITALIC) then
- Np.last = lx; set_attr(lx, attr_icflag, IC_PROCESSED)
- else
- lp=lx; break
- end
- else
- lp=lx; break
- end
- end
+ local lai = get_attr_icflag(lx)
+ if lx==last or lai>=PACKED then
+ lp=lx; break
+ else
+ local lid = getid(lx)
+ if lid==id_glyph and not if_lang_ja(lx) then
+ -- 欧文文字
+ last_glyph = lx; set_attr(lx, attr_icflag, PROCESSED); Np.last = lx
+ y_adjust = has_attr(lx,attr_ablshift) or 0
+ node_depth = max(getfield(lx, 'depth') + min(y_adjust, 0), node_depth)
+ adj_depth = (y_adjust>0) and max(getfield(lx, 'depth') + y_adjust, adj_depth) or adj_depth
+ setfield(lx, 'yoffset', getfield(lx, 'yoffset') - y_adjust)
+ elseif lid==id_kern then
+ local ls = getsubtype(lx)
+ if ls==2 then -- アクセント用の kern
+ set_attr(lx, attr_icflag, PROCESSED)
+ lx = node_next(lx) -- lx: アクセント本体
+ if getid(lx)==id_glyph then
+ setfield(lx, 'yoffset', getfield(lx, 'yoffset') - (has_attr(lx,attr_ablshift) or 0))
+ else -- アクセントは上下にシフトされている
+ setfield(lx, 'shift', getfield(lx, 'shift') + (has_attr(lx,attr_ablshift) or 0))
+ end
+ lx = node_next(node_next(lx))
+ elseif ls==0 then
+ Np.last = lx
+ elseif (ls==3) or (lai==ITALIC) then
+ Np.last = lx; set_attr(lx, attr_icflag, IC_PROCESSED)
+ else
+ lp=lx; break
+ end
+ else
+ lp=lx; break
+ end
+ end
end
local r
if adj_depth>node_depth then
- r = node_new(id_rule,3)
- setfield(r, 'width', 0); setfield(r, 'height', 0)
- setfield(r, 'depth',adj_depth); setfield(r, 'dir', tex_dir)
- set_attr(r, attr_icflag, PROCESSED)
+ r = node_new(id_rule,3)
+ setfield(r, 'width', 0); setfield(r, 'height', 0)
+ setfield(r, 'depth',adj_depth); setfield(r, 'dir', tex_dir)
+ set_attr(r, attr_icflag, PROCESSED)
end
if last_glyph then
- Np.last_char = last_glyph
- if r then insert_after(head, first_glyph, r) end
+ Np.last_char = last_glyph
+ if r then insert_after(head, first_glyph, r) end
else
- local npn = Np.nuc
- Np.last_char = npn
- if r then
- local nf, nc = getfont(npn), getchar(npn)
- local ct = (font.getfont(nf) or font.fonts[nf] ).characters[nc]
- if not ct then -- variation selector
- node_free(r)
- elseif (ct.left_protruding or 0) == 0 then
- head = insert_before(head, npn, r)
- Np.first = acc_flag and Np.first or ((Np.first==npn) and r or npn)
- elseif (ct.right_protruding or 0) == 0 then
- insert_after(head, npn, r); Np.last, lp = r, r
- else
- ltjb.package_warning_no_line(
- 'luatexja',
- 'Check depth of glyph node ' .. tostring(npn) .. '(font=' .. nf
- .. ', char=' .. nc .. '), because its \\lpcode is ' .. tostring(ct.left_protruding)
- .. ' and its \\rpcode is ' .. tostring(ct.right_protruding)
- ); node_free(r)
- end
- end
+ local npn = Np.nuc
+ Np.last_char = npn
+ if r then
+ local nf, nc = getfont(npn), getchar(npn)
+ local ct = (font.getfont(nf) or font.fonts[nf] ).characters[nc]
+ if not ct then -- variation selector
+ node_free(r)
+ elseif (ct.left_protruding or 0) == 0 then
+ head = insert_before(head, npn, r)
+ Np.first = acc_flag and Np.first or ((Np.first==npn) and r or npn)
+ elseif (ct.right_protruding or 0) == 0 then
+ insert_after(head, npn, r); Np.last, lp = r, r
+ else
+ ltjb.package_warning_no_line(
+ 'luatexja',
+ 'Check depth of glyph node ' .. tostring(npn) .. '(font=' .. nf
+ .. ', char=' .. nc .. '), because its \\lpcode is ' .. tostring(ct.left_protruding)
+ .. ' and its \\rpcode is ' .. tostring(ct.right_protruding)
+ ); node_free(r)
+ end
+ end
end
return true, lp
end
@@ -429,10 +421,10 @@ local ltjw_apply_ashift_math = ltjw.apply_ashift_math
local ltjw_apply_ashift_disc = ltjw.apply_ashift_disc
local node_end_of_math = node.direct.end_of_math
local dir_tate = luatexja.dir_table.dir_tate
-local sid_start_link = node.subtype('pdf_start_link')
-local sid_start_thread = node.subtype('pdf_start_thread')
-local sid_end_link = node.subtype('pdf_end_link')
-local sid_end_thread = node.subtype('pdf_end_thread')
+local sid_start_link = node.subtype 'pdf_start_link'
+local sid_start_thread = node.subtype 'pdf_start_thread'
+local sid_end_link = node.subtype 'pdf_end_link'
+local sid_end_thread = node.subtype 'pdf_end_thread'
calc_np_auxtable = {
[id_glyph] = calc_np_aux_glyph_common,
[id_hlist] = function(lp)
@@ -441,10 +433,10 @@ calc_np_auxtable = {
set_attr(op, attr_icflag, PROCESSED)
Np.first = Np.first or op; Np.last = op; Np.nuc = op;
if (flag or getfield(op, 'shift')~=0) then
- Np.id = id_box_like
+ Np.id = id_box_like
else
- Np.id = id_hlist
- Np.last_char = check_box_high(Np, getlist(op), nil)
+ Np.id = id_hlist
+ Np.last_char = check_box_high(Np, getlist(op), nil)
end
return true, lp
end,
@@ -463,34 +455,34 @@ calc_np_auxtable = {
[id_whatsit] = function(lp)
local lps = getsubtype(lp)
if lps==sid_user then
- if getfield(lp, 'user_id')==luatexja.userid_table.IHB then
- local lq = node_next(lp);
- head = node_remove(head, lp); node_free(lp); non_ihb_flag = false
- return false, lq;
- elseif getfield(lp, 'user_id')==luatexja.userid_table.JA_AL_BDD then
- local lq = node_next(lp);
- head = node_remove(head, lp); node_free(lp)
- return false, lq;
- else
- set_attr(lp, attr_icflag, PROCESSED)
- luatexbase.call_callback("luatexja.jfmglue.whatsit_getinfo",
- Np, lp, Nq)
- if Np.nuc then
- Np.id = id_pbox_w; Np.first = Np.nuc; Np.last = Np.nuc;
- return true, node_next(lp)
- else
- return false, node_next(lp)
- end
- end
+ if getfield(lp, 'user_id')==luatexja.userid_table.IHB then
+ local lq = node_next(lp);
+ head = node_remove(head, lp); node_free(lp); non_ihb_flag = false
+ return false, lq;
+ elseif getfield(lp, 'user_id')==luatexja.userid_table.JA_AL_BDD then
+ local lq = node_next(lp);
+ head = node_remove(head, lp); node_free(lp)
+ return false, lq;
+ else
+ set_attr(lp, attr_icflag, PROCESSED)
+ luatexbase.call_callback("luatexja.jfmglue.whatsit_getinfo",
+ Np, lp, Nq)
+ if Np.nuc then
+ Np.id = id_pbox_w; Np.first = Np.nuc; Np.last = Np.nuc;
+ return true, node_next(lp)
+ else
+ return false, node_next(lp)
+ end
+ end
else
- -- we do special treatment for these whatsit nodes.
- if lps == sid_start_link or lps == sid_start_thread then
- Np.first = lp
- elseif lps == sid_end_link or lps == sid_end_thread then
- Np.first, Nq.last = nil, lp;
- end
- set_attr(lp, attr_icflag, PROCESSED)
- return false, node_next(lp)
+ -- we do special treatment for these whatsit nodes.
+ if lps == sid_start_link or lps == sid_start_thread then
+ Np.first = lp
+ elseif lps == sid_end_link or lps == sid_end_thread then
+ Np.first, Nq.last = nil, lp;
+ end
+ set_attr(lp, attr_icflag, PROCESSED)
+ return false, node_next(lp)
end
end,
[id_math] = function(lp)
@@ -517,21 +509,21 @@ calc_np_auxtable = {
end,
[id_kern] = function(lp)
if getsubtype(lp)==2 then
- Np.first = Np.first or lp
- set_attr(lp, attr_icflag, PROCESSED); lp = node_next(lp)
- if getid(lp)==id_glyph then -- アクセント本体
- setfield(lp, 'yoffset', getfield(lp, 'yoffset') - (has_attr(lp,attr_ablshift) or 0))
- else -- アクセントは上下にシフトされている
- setfield(lp, 'shift', getfield(lp, 'shift') + (has_attr(lp,attr_ablshift) or 0))
- end
- set_attr(lp, attr_icflag, PROCESSED); lp = node_next(lp)
- set_attr(lp, attr_icflag, PROCESSED); lp = node_next(lp)
- set_attr(lp, attr_icflag, PROCESSED);
- return calc_np_aux_glyph_common(lp, true)
+ Np.first = Np.first or lp
+ set_attr(lp, attr_icflag, PROCESSED); lp = node_next(lp)
+ if getid(lp)==id_glyph then -- アクセント本体
+ setfield(lp, 'yoffset', getfield(lp, 'yoffset') - (has_attr(lp,attr_ablshift) or 0))
+ else -- アクセントは上下にシフトされている
+ setfield(lp, 'shift', getfield(lp, 'shift') + (has_attr(lp,attr_ablshift) or 0))
+ end
+ set_attr(lp, attr_icflag, PROCESSED); lp = node_next(lp)
+ set_attr(lp, attr_icflag, PROCESSED); lp = node_next(lp)
+ set_attr(lp, attr_icflag, PROCESSED);
+ return calc_np_aux_glyph_common(lp, true)
else
- Np.first = Np.first or lp
- Np.id = id_kern; set_attr(lp, attr_icflag, PROCESSED)
- Np.last = lp; return true, node_next(lp)
+ Np.first = Np.first or lp
+ Np.id = id_kern; set_attr(lp, attr_icflag, PROCESSED)
+ Np.last = lp; return true, node_next(lp)
end
end,
[id_penalty] = function(lp)
@@ -567,14 +559,14 @@ function calc_np(last, lp)
-- unbox 由来ノードの検出
if lpa>=PACKED then
if lpa%PROCESSED_BEGIN_FLAG == BOXBDD then
- local lq = node_next(lp)
+ local lq = node_next(lp)
head = node_remove(head, lp); node_free(lp); lp = lq
else
- return calc_np_pbox(lp, last)
+ return calc_np_pbox(lp, last)
end -- id_pbox
else
- k, lp = (calc_np_auxtable[getid(lp)] or calc_np_aux_skip)(lp)
- if k then return lp end
+ k, lp = (calc_np_auxtable[getid(lp)] or calc_np_aux_skip)(lp)
+ if k then return lp end
end
end
Np=nil
@@ -634,44 +626,42 @@ do
local nullfunc = function(n) return n end
function set_np_xspc_alchar(Nx, c,x, lig)
if c~=-1 then
- local f = (lig ==1) and nullfunc or node_tail
+ local f = (lig ==1) and nullfunc or node_tail
local xc, xs = getcomponents(x), getsubtype(x)
- while xc and xs and xs%4>=2 do
- x = f(xc);
- if getid(x)==id_disc then x, xc, xs = nil, getfield(x,'replace'), 2
- else xc, xs = getcomponents(x), getsubtype(x) end
- end
- c = x and getchar(x) or c
- Nx.pre = table_current_stack[PRE + c] or 0
- Nx.post = table_current_stack[POST + c] or 0
+ while xc and xs and xs%4>=2 do
+ x = f(xc);
+ if getid(x)==id_disc then x, xc, xs = nil, getfield(x,'replace'), 2
+ else xc, xs = getcomponents(x), getsubtype(x) end
+ end
+ c = x and getchar(x) or c
+ Nx.pre = table_current_stack[PRE + c] or 0
+ Nx.post = table_current_stack[POST + c] or 0
else
- Nx.pre, Nx.post = 0, 0
+ Nx.pre, Nx.post = 0, 0
end
Nx.met = nil
Nx.xspc = table_current_stack[XSP + c] or 3
Nx.auto_xspc = (has_attr(x, attr_autoxspc)==1)
end
local set_np_xspc_alchar = set_np_xspc_alchar
-
-- change the information for the next loop
-- (will be done if Nx is an alphabetic character or a hlist)
after_hlist = function (Nx)
local s = Nx.last_char
if s then
- if getid(s)==id_glyph then
- if if_lang_ja(s) then
- set_np_xspc_jachar_hbox(Nx, s)
- else
- set_np_xspc_alchar(Nx, getchar(s), s, 2)
- end
- else
- set_np_xspc_alchar(Nx, -1, s)
- end
+ if getid(s)==id_glyph then
+ if if_lang_ja(s) then
+ set_np_xspc_jachar_hbox(Nx, s)
+ else
+ set_np_xspc_alchar(Nx, getchar(s), s, 2)
+ end
+ else
+ set_np_xspc_alchar(Nx, -1, s)
+ end
else
- Nx.pre, Nx.met = nil, nil
+ Nx.pre, Nx.met = nil, nil
end
end
-
after_alchar = function (Nx)
local x = Nx.last_char
return set_np_xspc_alchar(Nx, getchar(x), x, 2)
@@ -689,12 +679,10 @@ local function handle_penalty_normal(post, pre, g)
local a = (pre or 0) + (post or 0)
if #Bp == 0 then
if (a~=0 and not(g and getid(g)==id_kern)) then
- local p = node_new(id_penalty)
- if a<-10000 then a = -10000 elseif a>10000 then a = 10000 end
- setfield(p, 'penalty', a)
- head = insert_before(head, Np.first, p)
- Bp[1]=p;
- set_attr(p, attr_icflag, KINSOKU)
+ local p = node_new(id_penalty)
+ if a<-10000 then a = -10000 elseif a>10000 then a = 10000 end
+ setfield(p, 'penalty', a); head = insert_before(head, Np.first, p)
+ Bp[1]=p; set_attr(p, attr_icflag, KINSOKU)
end
else for _, v in pairs(Bp) do add_penalty(v,a) end
end
@@ -705,12 +693,10 @@ local function handle_penalty_always(post, pre, g)
local a = (pre or 0) + (post or 0)
if #Bp == 0 then
if not (g and getid(g)==id_glue) or a~=0 then
- local p = node_new(id_penalty)
- if a<-10000 then a = -10000 elseif a>10000 then a = 10000 end
- setfield(p, 'penalty', a)
- head = insert_before(head, Np.first, p)
- Bp[1]=p
- set_attr(p, attr_icflag, KINSOKU)
+ local p = node_new(id_penalty)
+ if a<-10000 then a = -10000 elseif a>10000 then a = 10000 end
+ setfield(p, 'penalty', a); head = insert_before(head, Np.first, p)
+ Bp[1]=p; set_attr(p, attr_icflag, KINSOKU)
end
else for _, v in pairs(Bp) do add_penalty(v,a) end
end
@@ -720,10 +706,9 @@ local function handle_penalty_suppress(post, pre, g)
luatexbase.call_callback('luatexja.adjust_jfmglue', head, Nq, Np, Bp)
if #Bp == 0 then
if g and getid(g)==id_glue then
- local p = node_new(id_penalty)
- setfield(p, 'penalty', 10000); head = insert_before(head, Np.first, p)
- Bp[1]=p
- set_attr(p, attr_icflag, KINSOKU)
+ local p = node_new(id_penalty)
+ setfield(p, 'penalty', 10000); head = insert_before(head, Np.first, p)
+ Bp[1]=p; set_attr(p, attr_icflag, KINSOKU)
end
else
local a = (pre or 0) + (post or 0)
@@ -735,12 +720,10 @@ local function handle_penalty_jwp()
local a = table_current_stack[luatexja.stack_table_index.JWP]
if #widow_Bp == 0 then
if a~=0 then
- local p = node_new(id_penalty)
- if a<-10000 then a = -10000 elseif a>10000 then a = 10000 end
- setfield(p, 'penalty', a)
- head = insert_before(head, widow_Np.first, p)
- widow_Bp[1]=p;
- set_attr(p, attr_icflag, KINSOKU)
+ local p = node_new(id_penalty)
+ if a<-10000 then a = -10000 elseif a>10000 then a = 10000 end
+ setfield(p, 'penalty', a); head = insert_before(head, widow_Np.first, p)
+ widow_Bp[1]=p; set_attr(p, attr_icflag, KINSOKU)
end
else for _, v in pairs(widow_Bp) do add_penalty(v,a) end
end
@@ -752,12 +735,12 @@ local function new_jfm_glue(mc, bc, ac)
local g = mc[bc][ac]
if g then
if g[1] then
- return node_copy(g[1]), g.ratio, false, false, false
+ return node_copy(g[1]), g.ratio, false, false, false
else
- local f = node_new(id_glue)
+ local f = node_new(id_glue)
set_attr(f, attr_icflag, g.priority)
- setglue(f, g.width, g.stretch, g.shrink)
- return f, g.ratio, g.kanjiskip_natural, g.kanjiskip_stretch, g.kanjiskip_shrink
+ setglue(f, g.width, g.stretch, g.shrink)
+ return f, g.ratio, g.kanjiskip_natural, g.kanjiskip_stretch, g.kanjiskip_shrink
end
end
return false, 0
@@ -798,36 +781,36 @@ do
calc_ja_ja_aux = function (gb, ga, db, da)
if luatexja.jfmglue.diffmet_rule ~= math.two_pleft and diffmet_rule ~= math.two_pright
and luatexja.jfmglue.diffmet_rule ~= math.two_paverage then
- db, da = 0, 1
+ db, da = 0, 1
end
if not gb then
- if ga then gb = node_new(id_kern, 1); setfield(gb, 'kern', 0)
- else return nil end
+ if ga then gb = node_new(id_kern, 1); setfield(gb, 'kern', 0)
+ else return nil end
elseif not ga then
- ga = node_new(id_kern, 1); setfield(ga, 'kern', 0)
+ ga = node_new(id_kern, 1); setfield(ga, 'kern', 0)
end
local gbw, gaw, gbst, gast, gbsto, gasto, gbsh, gash, gbsho, gasho
if getid(gb)==id_glue then
gbw, gbst, gbsh, gbsto, gbsho = getglue(gb)
else
- gbw = getfield(gb, 'kern')
+ gbw = getfield(gb, 'kern')
end
if getid(ga)==id_glue then
gaw, gast, gash, gasto, gasho = getglue(ga)
else
- gaw = getfield(ga, 'kern')
+ gaw = getfield(ga, 'kern')
end
if not (gbst or gast) then -- 両方とも kern
- setfield(gb, 'kern', blend_diffmet(gbw, gaw, db, da))
- node_free(ga); return gb
+ setfield(gb, 'kern', blend_diffmet(gbw, gaw, db, da))
+ node_free(ga); return gb
else
local gr = gb
if not gbst then gr = ga; node_free(gb) else node_free(ga) end
gbw = blend_diffmet(gbw or 0, gaw or 0, db, da) -- 結果の自然長
gbst, gbsto = blend_diffmet_inf(gbst, gast, gbsto, gasto, db, da) -- 伸び
gbsh, gbsho = blend_diffmet_inf(-(gbsh or 0), -(gash or 0), gbsho, gasho, db, da) -- -(縮み)
- setglue(gr, gbw, gbst, -gbsh, gbsto, gbsho)
- return gr
+ setglue(gr, gbw, gbst, -gbsh, gbsto, gbsho)
+ return gr
end
end
end
@@ -846,51 +829,50 @@ do
-- ノード kanji_skip のコピーで良い場合は nil が帰る
-- flag = true: JFM グルーに付随する kanjiskip 自然長/伸び/縮み分
if qm.with_kanjiskip and (bn or bp or bh) then
- if kanjiskip_jfm_flag then
- local g = node_new(id_glue);
- local bk = qm.kanjiskip or null_skip_table
- setglue(g, bn and (bn*bk[1]) or 0,
- bp and (bp*bk[2]) or 0,
- bh and (bh*bk[3]) or 0, 0, 0)
- set_attr(g, attr_icflag, KANJI_SKIP_JFM)
- return g
- elseif flag then
- local g = node_new(id_glue)
+ if kanjiskip_jfm_flag then
+ local g = node_new(id_glue);
+ local bk = qm.kanjiskip or null_skip_table
+ setglue(g, bn and (bn*bk[1]) or 0,
+ bp and (bp*bk[2]) or 0,
+ bh and (bh*bk[3]) or 0, 0, 0)
+ set_attr(g, attr_icflag, KANJI_SKIP_JFM)
+ return g
+ elseif flag then
+ local g = node_new(id_glue)
local st = bp and (bp*getfield(kanji_skip, 'stretch')) or 0
local sh = bh and (bh*getfield(kanji_skip, 'shrink')) or 0
- setglue(g,
- bn and (bn*getfield(kanji_skip, 'width')) or 0,
- st, sh,
- (st==0) and 0 or getfield(kanji_skip, 'stretch_order'),
- (sh==0) and 0 or getfield(kanji_skip, 'shrink_order'))
- set_attr(g, attr_icflag, KANJI_SKIP_JFM)
- return g
- end
+ setglue(g,
+ bn and (bn*getfield(kanji_skip, 'width')) or 0,
+ st, sh,
+ (st==0) and 0 or getfield(kanji_skip, 'stretch_order'),
+ (sh==0) and 0 or getfield(kanji_skip, 'shrink_order'))
+ set_attr(g, attr_icflag, KANJI_SKIP_JFM)
+ return g
+ end
end
end
get_kanjiskip = function()
- if Np.auto_kspc==0 or Nq.auto_kspc==0 then
- return nil
+ if Np.auto_kspc==0 or Nq.auto_kspc==0 then return nil
elseif Np.auto_kspc or Nq.auto_kspc then
- local pm, qm = Np.met, Nq.met
- if (pm.char_type==qm.char_type) and (qm.var==pm.var) then
- return get_kanjiskip_low(false, qm, 1, 1, 1) or node_copy(kanji_skip)
- else
- local gb = get_kanjiskip_low(false, qm, 1, 1, 1)
- if gb then
- return calc_ja_ja_aux(gb,
- get_kanjiskip_low(false, pm, 1, 1, 1) or node_copy(kanji_skip), 0, 1)
- else
- local ga = get_kanjiskip_low(false, pm, 1, 1, 1)
- return (ga and calc_ja_ja_aux(node_copy(kanji_skip), ga, 0, 1))
- or node_copy(kanji_skip)
- end
- end
+ local pm, qm = Np.met, Nq.met
+ if (pm.char_type==qm.char_type) and (qm.var==pm.var) then
+ return get_kanjiskip_low(false, qm, 1, 1, 1) or node_copy(kanji_skip)
+ else
+ local gb = get_kanjiskip_low(false, qm, 1, 1, 1)
+ if gb then
+ return calc_ja_ja_aux(gb,
+ get_kanjiskip_low(false, pm, 1, 1, 1) or node_copy(kanji_skip), 0, 1)
+ else
+ local ga = get_kanjiskip_low(false, pm, 1, 1, 1)
+ return (ga and calc_ja_ja_aux(node_copy(kanji_skip), ga, 0, 1))
+ or node_copy(kanji_skip)
+ end
+ end
else
- local g = node_new(id_glue)
- set_attr(g, attr_icflag, kanjiskip_jfm_flag and KANJI_SKIP_JFM or KANJI_SKIP)
- return g
+ local g = node_new(id_glue)
+ set_attr(g, attr_icflag, kanjiskip_jfm_flag and KANJI_SKIP_JFM or KANJI_SKIP)
+ return g
end
end
@@ -898,27 +880,25 @@ do
local qm, pm = Nq.met, Np.met
local qmc, pmc = qm.char_type, pm.char_type
if (qmc==pmc) and (qm.var==pm.var) then
- local g, _, kn, kp, kh = new_jfm_glue(qmc, Nq.class, Np.class)
- return g, (Np.auto_kspc or Nq.auto_kspc) and get_kanjiskip_low(true, qm, kn, kp, kh)
+ local g, _, kn, kp, kh = new_jfm_glue(qmc, Nq.class, Np.class)
+ return g, (Np.auto_kspc or Nq.auto_kspc) and get_kanjiskip_low(true, qm, kn, kp, kh)
else
- local npn, nqn = Np.nuc, Nq.nuc
- local gb, db, bn, bp, bh
- = new_jfm_glue(qmc, Nq.class,
- slow_find_char_class(Np.char,
- qm, getchar(npn)))
- local ga, da, an, ap, ah
- = new_jfm_glue(pmc,
- slow_find_char_class(Nq.char,
- pm, getchar(nqn)),
- Np.class)
- local g = calc_ja_ja_aux(gb, ga, db, da)
- local k
- --if (pmc==qmc) and (qm.var==pm.var) then
+ local npn, nqn = Np.nuc, Nq.nuc
+ local gb, db, bn, bp, bh
+ = new_jfm_glue(qmc, Nq.class,
+ slow_find_char_class(Np.char,
+ qm, getchar(npn)))
+ local ga, da, an, ap, ah
+ = new_jfm_glue(pmc,
+ slow_find_char_class(Nq.char,
+ pm, getchar(nqn)),
+ Np.class)
+ local g = calc_ja_ja_aux(gb, ga, db, da)
+ local k
gb = get_kanjiskip_low(true, qm, bn, bp, bh)
- ga = get_kanjiskip_low(true, pm, an, ap, ah)
- k = calc_ja_ja_aux(gb, ga, db, da)
- --end
- return g, k
+ ga = get_kanjiskip_low(true, pm, an, ap, ah)
+ k = calc_ja_ja_aux(gb, ga, db, da)
+ return g, k
end
end
end
@@ -935,27 +915,27 @@ do
get_xkanjiskip_low = function(flag, qm, bn, bp, bh)
if flag or (qm.with_kanjiskip and (bn or bp or bh)) then
- if xkanjiskip_jfm_flag then
- local g = node_new(id_glue);
- local bk = qm.xkanjiskip or null_skip_table
- setglue(g, bn and bk[1] or 0,
- bp and bk[2] or 0,
- bh and bk[3] or 0, 0, 0)
- set_attr(g, attr_icflag, XKANJI_SKIP_JFM)
- return g
- elseif flag then
- return node_copy(xkanji_skip)
- else
- local g = node_new(id_glue);
- setglue(g,
- bn and (bn*getfield(xkanji_skip, 'width')) or 0,
- bp and (bp*getfield(xkanji_skip, 'stretch')) or 0,
- bh and (bh*getfield(xkanji_skip, 'shrink')) or 0,
- bp and getfield(xkanji_skip, 'stretch_order') or 0,
- bh and getfield(xkanji_skip, 'shrink_order') or 0)
- set_attr(g, attr_icflag, XKANJI_SKIP_JFM)
- return g
- end
+ if xkanjiskip_jfm_flag then
+ local g = node_new(id_glue);
+ local bk = qm.xkanjiskip or null_skip_table
+ setglue(g, bn and bk[1] or 0,
+ bp and bk[2] or 0,
+ bh and bk[3] or 0, 0, 0)
+ set_attr(g, attr_icflag, XKANJI_SKIP_JFM)
+ return g
+ elseif flag then
+ return node_copy(xkanji_skip)
+ else
+ local g = node_new(id_glue);
+ setglue(g,
+ bn and (bn*getfield(xkanji_skip, 'width')) or 0,
+ bp and (bp*getfield(xkanji_skip, 'stretch')) or 0,
+ bh and (bh*getfield(xkanji_skip, 'shrink')) or 0,
+ bp and getfield(xkanji_skip, 'stretch_order') or 0,
+ bh and getfield(xkanji_skip, 'shrink_order') or 0)
+ set_attr(g, attr_icflag, XKANJI_SKIP_JFM)
+ return g
+ end
end
end
@@ -963,11 +943,11 @@ do
if Np.auto_xspc==0 or Nq.auto_xspc==0 then
return nil
elseif (Nq.xspc>=2) and (Np.xspc%2==1) and (Nq.auto_xspc or Np.auto_xspc) then
- return get_xkanjiskip_low(true, Nn.met, 1, 1, 1)
+ return get_xkanjiskip_low(true, Nn.met, 1, 1, 1)
else
- local g = node_new(id_glue)
- set_attr(g, attr_icflag, xkanjiskip_jfm_flag and XKANJI_SKIP_JFM or XKANJI_SKIP)
- return g
+ local g = node_new(id_glue)
+ set_attr(g, attr_icflag, xkanjiskip_jfm_flag and XKANJI_SKIP_JFM or XKANJI_SKIP)
+ return g
end
end
end
@@ -986,7 +966,7 @@ local function get_NA_skip()
fast_find_char_class(
(Nq.id == id_math and -1 or (Nq.xspc>=2 and 'alchar' or 'nox_alchar')), pm),
Np.class)
- local k = ((Nq.xspc>=2) and (Np.xspc%2==1) and combine_spc('auto_xspc'))
+ local k = ((Nq.xspc>=2) and (Np.xspc%2==1) and combine_spc 'auto_xspc')
and get_xkanjiskip_low(false, pm, kn, kp, kh)
return g, k
end
@@ -997,12 +977,12 @@ local function get_NB_skip()
fast_find_char_class(
(Np.id == id_math and -1 or (Np.xspc%2==1 and 'alchar' or 'nox_alchar')), qm)
)
- local k = ((Nq.xspc>=2) and (Np.xspc%2==1) and combine_spc('auto_xspc'))
- and get_xkanjiskip_low(false, qm, kn, kp, kh)
+ local k = ((Nq.xspc>=2) and (Np.xspc%2==1) and combine_spc 'auto_xspc')
+ and get_xkanjiskip_low(false, qm, kn, kp, kh)
return g, k
end
-local function get_OA_skip(is_kanji)
+local function get_OA_skip(insert_ksp)
local pm = Np.met
local g, _, kn, kp, kh = new_jfm_glue(
pm.char_type,
@@ -1010,20 +990,20 @@ local function get_OA_skip(is_kanji)
(((Nq.id==id_glue)or(Nq.id==id_kern)) and 'glue' or 'jcharbdd'), pm),
Np.class)
local k
- if is_kanji==0 then
- k = combine_spc('auto_kspc') and get_kanjiskip_low(true, pm, kn, kp, kh)
+ if insert_ksp then
+ k = (combine_spc 'auto_kspc') and get_kanjiskip_low(true, pm, kn, kp, kh)
end
return g, k
end
-local function get_OB_skip(is_kanji)
+local function get_OB_skip(insert_ksp)
local qm = Nq.met
local g, _, kn, kp, kh = new_jfm_glue(
qm.char_type, Nq.class,
fast_find_char_class(
(((Np.id==id_glue)or(Np.id==id_kern)) and 'glue' or 'jcharbdd'), qm))
local k
- if is_kanji==0 then
- k = combine_spc('auto_kspc') and get_kanjiskip_low(true, qm, kn, kp, kh)
+ if insert_ksp then
+ k = (combine_spc 'auto_kspc') and get_kanjiskip_low(true, qm, kn, kp, kh)
end
return g, k
end
@@ -1039,7 +1019,7 @@ local function handle_np_jachar(mode)
real_insert(g); real_insert(k)
elseif Nq.met then -- qid==id_hlist
local g, k
- if non_ihb_flag then g, k = get_OA_skip(0) end -- O_A->K
+ if non_ihb_flag then g, k = get_OA_skip(true) end -- O_A->K
if not g then g = get_kanjiskip() end
handle_penalty_normal(0, Np.pre, g); real_insert(g); real_insert(k)
elseif Nq.pre then
@@ -1081,7 +1061,7 @@ end
local function handle_np_ja_hlist()
local qid = Nq.id
if qid==id_jglyph or ((qid==id_pbox or qid == id_pbox_w) and Nq.met) then
- local g = non_ihb_flag and get_OB_skip(0) or get_kanjiskip() -- O_B->K
+ local g = non_ihb_flag and get_OB_skip(true) or get_kanjiskip() -- O_B->K
handle_penalty_normal(Nq.post, 0, g); real_insert(g)
elseif Nq.met then -- Nq.id==id_hlist
local g = get_kanjiskip() -- K
@@ -1110,12 +1090,12 @@ do
[id_pbox] = function() after_hlist(Nq) end,
[id_disc] = function() after_hlist(Nq) end,
[id_pbox_w] = function()
- luatexbase.call_callback("luatexja.jfmglue.whatsit_after",
- false, Nq, Np)
- end,
+ luatexbase.call_callback("luatexja.jfmglue.whatsit_after",
+ false, Nq, Np)
+ end,
}
- adjust_nq=function()
+ adjust_nq = function()
local x = adjust_nq_aux[Nq.id]
if x then x() end
end
@@ -1133,15 +1113,15 @@ local function handle_list_tail(mode, last)
-- Insert \jcharwidowpenalty
if widow_Np.first then handle_penalty_jwp() end
else
- Np=Nq
+ Np = Nq
-- the current list is the contents of a hbox
local npi, pm = Np.id, Np.met
if npi == id_jglyph or (npi==id_pbox and pm) then
- local g = new_jfm_glue(pm.char_type, Np.class, fast_find_char_class('boxbdd', pm))
- if g then
- set_attr(g, attr_icflag, BOXBDD)
- head = insert_after(head, Np.last, g)
- end
+ local g = new_jfm_glue(pm.char_type, Np.class, fast_find_char_class('boxbdd', pm))
+ if g then
+ set_attr(g, attr_icflag, BOXBDD)
+ head = insert_after(head, Np.last, g)
+ end
end
end
end
@@ -1149,17 +1129,17 @@ end
-- リスト先頭の処理
local function handle_list_head(par_indented)
local npi, pm = Np.id, Np.met
- if npi == id_jglyph or (npi==id_pbox and pm) then
+ if npi == id_jglyph or (npi==id_pbox and pm) then
if non_ihb_flag then
- local g = new_jfm_glue(pm.char_type, fast_find_char_class(par_indented, pm), Np.class)
- if g then
- set_attr(g, attr_icflag, BOXBDD)
- if getid(g)==id_glue and #Bp==0 then
- local h = node_new(id_penalty)
- setfield(h, 'penalty', 10000); set_attr(h, attr_icflag, BOXBDD)
- end
- head = insert_before(head, Np.first, g)
- end
+ local g = new_jfm_glue(pm.char_type, fast_find_char_class(par_indented, pm), Np.class)
+ if g then
+ set_attr(g, attr_icflag, BOXBDD)
+ if getid(g)==id_glue and #Bp==0 then
+ local h = node_new(id_penalty)
+ setfield(h, 'penalty', 10000); set_attr(h, attr_icflag, BOXBDD)
+ end
+ head = insert_before(head, Np.first, g)
+ end
end
end
end
@@ -1168,7 +1148,7 @@ end
-- return value: (the initial cursor lp), (last node)
local init_var
do
- local id_local = node.id('local_par')
+ local id_local = node.id 'local_par'
local KANJI_SKIP = luatexja.icflag_table.KANJI_SKIP
local XKANJI_SKIP = luatexja.icflag_table.XKANJI_SKIP
local KSK = luatexja.stack_table_index.KSK
@@ -1180,16 +1160,16 @@ do
local table_pool = {
{}, {}, {first=nil},
{ auto_kspc=nil, auto_xspc=nil, char=nil, class=nil,
- first=nil, id=nil, last=nil, met=nil, nuc=nil,
- post=nil, pre=nil, xspc=nil, },
+ first=nil, id=nil, last=nil, met=nil, nuc=nil,
+ post=nil, pre=nil, xspc=nil, },
{ auto_kspc=nil, auto_xspc=nil, char=nil, class=nil,
- first=nil, id=nil, last=nil, met=nil, nuc=nil,
- post=nil, pre=nil, xspc=nil, },
+ first=nil, id=nil, last=nil, met=nil, nuc=nil,
+ post=nil, pre=nil, xspc=nil, },
}
init_var = function (mode,dir)
-- 1073741823: max_dimen
Bp, widow_Bp, widow_Np, Np, Nq
- = table_pool[1], table_pool[2], table_pool[3], table_pool[4], table_pool[5]
+ = table_pool[1], table_pool[2], table_pool[3], table_pool[4], table_pool[5]
for i=1,5 do for j,_ in pairs(table_pool[i]) do table_pool[i][j]=nil end end
table_current_stack = ltjs.table_current_stack
@@ -1202,31 +1182,31 @@ do
-- ithout this node, set_attr(kanji_skip, ...) somehow creates an "orphaned" attribute list.
do
- kanji_skip, kanjiskip_jfm_flag = skip_table_to_glue(KSK)
- set_attr(kanji_skip, attr_icflag, KANJI_SKIP)
+ kanji_skip, kanjiskip_jfm_flag = skip_table_to_glue(KSK)
+ set_attr(kanji_skip, attr_icflag, KANJI_SKIP)
end
do
- xkanji_skip, xkanjiskip_jfm_flag = skip_table_to_glue(XSK)
- set_attr(xkanji_skip, attr_icflag, XKANJI_SKIP)
+ xkanji_skip, xkanjiskip_jfm_flag = skip_table_to_glue(XSK)
+ set_attr(xkanji_skip, attr_icflag, XKANJI_SKIP)
end
if mode then
- -- the current list is to be line-breaked:
- -- hbox from \parindent is skipped.
- local lp, par_indented, lpi, lps = head, 'boxbdd', getid(head), getsubtype(head)
- while lp and
- ((lpi==id_whatsit and lps~=sid_user)
- or ((lpi==id_hlist) and (lps==3))
+ -- the current list is to be line-breaked:
+ -- hbox from \parindent is skipped.
+ local lp, par_indented, lpi, lps = head, 'boxbdd', getid(head), getsubtype(head)
+ while lp and
+ ((lpi==id_whatsit and lps~=sid_user)
+ or ((lpi==id_hlist) and (lps==3))
or (lpi==id_local)) do
- if (lpi==id_hlist) and (lps==3) then
+ if (lpi==id_hlist) and (lps==3) then
Np.char, par_indented = 'parbdd', 'parbdd'
Np.width = getfield(lp, 'width')
end
- lp=node_next(lp); lpi, lps = getid(lp), getsubtype(lp) end
- return lp, node_tail(head), par_indented, TEMP
+ lp=node_next(lp); lpi, lps = getid(lp), getsubtype(lp) end
+ return lp, node_tail(head), par_indented, TEMP
else
- return head, nil, 'boxbdd', TEMP
+ return head, nil, 'boxbdd', TEMP
end
end
end
@@ -1242,10 +1222,10 @@ local function cleanup(mode, TEMP)
if mode then
local h = node_next(head)
if getid(h) == id_penalty and getfield(h, 'penalty') == 10000 then
- h = node_next(h)
- if getid(h) == id_glue and getsubtype(h) == 15 and not node_next(h) then
- return false
- end
+ h = node_next(h)
+ if getid(h) == id_glue and getsubtype(h) == 15 and not node_next(h) then
+ return false
+ end
end
end
return head
@@ -1264,19 +1244,19 @@ function luatexja.jfmglue.main(ahead, mode, dir)
handle_list_head(par_indented)
lp = calc_np(last,lp);
while Np do
- adjust_nq();
- local pid, pm = Np.id, Np.met
- -- 挿入部
- if pid == id_jglyph then
- handle_np_jachar(mode)
- elseif pm then
- if pid==id_hlist then handle_np_ja_hlist()
- else handle_np_jachar() end
- elseif Nq.met then
- if Nq.id==id_hlist then handle_nq_ja_hlist()
- else handle_nq_jachar() end
- end
- lp = calc_np(last,lp)
+ adjust_nq();
+ local pid, pm = Np.id, Np.met
+ -- 挿入部
+ if pid == id_jglyph then
+ handle_np_jachar(mode)
+ elseif pm then
+ if pid==id_hlist then handle_np_ja_hlist()
+ else handle_np_jachar() end
+ elseif Nq.met then
+ if Nq.id==id_hlist then handle_nq_ja_hlist()
+ else handle_nq_jachar() end
+ end
+ lp = calc_np(last,lp)
end
handle_list_tail(mode, last)
end
@@ -1327,17 +1307,17 @@ do
Np.first = lp; Np.nuc = lp; Np.last = lp
return Np
elseif Np and getfield(lp, 'user_id') == BOXB then
- Np.first = lp; Np.nuc = lp; Np.last = lp
- if Nq then
- if Nq.met then
- Np.class = fast_find_char_class('boxbdd', Nq.met)
+ Np.first = lp; Np.nuc = lp; Np.last = lp
+ if Nq then
+ if Nq.met then
+ Np.class = fast_find_char_class('boxbdd', Nq.met)
end
Np.met = Nq.met; Np.pre = 0; Np.post = 0; Np.xspc = 0
Np.auto_xspc, Np.auto_kspc = 0, 0
- end
+ end
return Np
else
- return Np
+ return Np
end
end
@@ -1365,7 +1345,7 @@ do
Nq.auto_xspc, Nq.auto_kspc = 0, 0
end
head = node_remove(head, y)
- node_free(y)
+ node_free(y)
end
return s
end
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua
index a15b7616bdd..d1751af4651 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua
@@ -3,15 +3,15 @@
--
luatexbase.provides_module({
name = 'luatexja.jfont',
- date = '2020-05-17',
+ date = '2020-07-30',
description = 'Loader for Japanese fonts',
})
-luatexja.load_module('lotf_aux'); local ltju = luatexja.lotf_aux
-luatexja.load_module('base'); local ltjb = luatexja.base
-luatexja.load_module('charrange'); local ltjc = luatexja.charrange
-luatexja.load_module('rmlgbm'); local ltjr = luatexja.rmlgbm
-luatexja.load_module('direction'); local ltjd = luatexja.direction
+luatexja.load_module 'lotf_aux'; local ltju = luatexja.lotf_aux
+luatexja.load_module 'base'; local ltjb = luatexja.base
+luatexja.load_module 'charrange'; local ltjc = luatexja.charrange
+luatexja.load_module 'rmlgbm'; local ltjr = luatexja.rmlgbm
+luatexja.load_module 'direction'; local ltjd = luatexja.direction
local setfield = node.direct.setfield
local getid = node.direct.getid
@@ -226,7 +226,7 @@ do
kanjiskip_stretch = w.kanjiskip_stretch,
kanjiskip_shrink = w.kanjiskip_shrink,
round_threshold = w.round_threshold,
- }
+ }
end
for k,w in pairs(v.kern) do
local g = node_new(id_kern, 1)
@@ -289,7 +289,7 @@ do
'no JFM specified',
'To load and define a Japanese font, a JFM must be specified.'..
"The JFM 'ujis' will be used for now.")
- jfm_file_name='ujis'
+ jfm_file_name = 'ujis'
end
for j,v in ipairs(metrics) do
if v.name==jfm_file_name then return j end
@@ -338,7 +338,7 @@ do
local fmtable = { jfm = j, size = f.size, var = jfm_var,
with_kanjiskip = jfm_ksp,
zw = sz.zw, zh = sz.zh,
- chars = sz.chars, char_type = sz.char_type,
+ chars = sz.chars, char_type = sz.char_type,
kanjiskip = sz.kanjiskip, xkanjiskip = sz.xkanjiskip,
chars_cbcache = {},
vert_activated = vert_activated,
@@ -347,9 +347,6 @@ do
ltju.enable_feature(fn, ltju.exist_feature(fn, 'vrt2') and 'vrt2' or 'vert')
end
- --texio.write_nl('term and log',
- --'JFNT\t' .. identifiers[fn].name .. '\t' .. identifiers[fn].size .. '\t' .. fn, '')
-
fmtable = luatexbase.call_callback("luatexja.define_jfont", fmtable, fn)
font_metric_table[fn]=fmtable
tex.sprint(cat_lp, global_flag, '\\protected\\expandafter\\def\\csname ',
@@ -381,15 +378,7 @@ do
-- extract jfm_file_name and jfm_var
-- normalize position of 'jfm=' and 'jfmvar=' keys
local function extract_metric(name)
- do
- local nametemp
- nametemp = name:match('^{(.*)}$')
- if nametemp then name = nametemp
- else
- nametemp = name:match('^"(.*)"$')
- name = nametemp or name
- end
- end
+ name = (name:match '^{(.*)}$') or (name:match '^"(.*)"$') or name
jfm_file_name = ''; jfm_var = ''; jfm_ksp = true
local tmp, index = name:sub(1, 5), 1
if tmp == 'file:' or tmp == 'name:' or tmp == 'psft:' then
@@ -404,16 +393,14 @@ do
if l~=q then
name = name:sub(1,index-1) .. name:sub(q+1)
else
- name = name:sub(1,index-1)
- index = nil
+ name = name:sub(1,index-1); index = nil
end
elseif name:sub(index, index+6)=='jfmvar=' and q>index+6 then
jfm_var = name:sub(index+7, q-1)
if l~=q then
name = name:sub(1,index-1) .. name:sub(q+1)
else
- name = name:sub(1,index-1)
- index = nil
+ name = name:sub(1,index-1); index = nil
end
else
index = (l~=q) and (q+1) or nil
@@ -432,9 +419,9 @@ do
jfm_ksp = not (x=='-')
end
if jfm_dir == 'tate' then
- vert_activated = (not name:match('[:;]%-vert')) and (not name:match('[:;]%-vrt2'))
+ vert_activated = (not name:match '[:;]%-vert') and (not name:match '[:;]%-vrt2')
auto_enable_vrt2
- = (not name:match('[:;][+%-]?vert')) and (not name:match('[:;][+%-]?vrt2'))
+ = (not name:match '[:;][+%-]?vert') and (not name:match '[:;][+%-]?vrt2')
else
vert_activated, auto_enable_vrt2 = nil, nil
end
@@ -672,18 +659,14 @@ do
-- EXT
function luatexja.jfont.output_alt_font_cmd(dir, bbase)
alt_font_base = bbase
- if dir == 't' then
- alt_font_base_num = tex.getattribute(attr_curtfnt)
- else
- alt_font_base_num = tex.getattribute(attr_curjfnt)
- end
+ alt_font_base_num = tex.getattribute((dir == 't') and attr_curtfnt or attr_curjfnt)
local t = alt_font_table[alt_font_base_num]
if t then
for i,_ in pairs(t) do t[i]=nil end
end
t = alt_font_table_latex[bbase]
if t then
- for i,_ in pairs(t) do
+ for i,_ in pairs(t) do
tex.sprint(cat_lp, '\\ltj@pickup@altfont@aux' .. dir .. '{' .. i .. '}')
end
end
@@ -762,9 +745,9 @@ local list_rotate_glyphs
do
local ceil = math.ceil
-- output of function_uax50.lua
- -- UAX#50 for Unicode 12.1.0
+ -- UAX#50 for Unicode 13.0.0
-- t[0] = true
- local t={ 0, 167, 168, 169, 170, 174, 175, 177, 178, 188, 191, 215, 216, 247, 248, 746, 748, 888, 890, 896, 900, 907, 908, 909, 910, 930, 931, 1328, 1329, 1367, 1369, 1419, 1421, 1424, 1425, 1480, 1488, 1515, 1519, 1525, 1536, 1565, 1566, 1806, 1807, 1867, 1869, 1970, 1984, 2043, 2045, 2094, 2096, 2111, 2112, 2140, 2142, 2143, 2144, 2155, 2208, 2229, 2230, 2238, 2259, 2436, 2437, 2445, 2447, 2449, 2451, 2473, 2474, 2481, 2482, 2483, 2486, 2490, 2492, 2501, 2503, 2505, 2507, 2511, 2519, 2520, 2524, 2526, 2527, 2532, 2534, 2559, 2561, 2564, 2565, 2571, 2575, 2577, 2579, 2601, 2602, 2609, 2610, 2612, 2613, 2615, 2616, 2618, 2620, 2621, 2622, 2627, 2631, 2633, 2635, 2638, 2641, 2642, 2649, 2653, 2654, 2655, 2662, 2679, 2689, 2692, 2693, 2702, 2703, 2706, 2707, 2729, 2730, 2737, 2738, 2740, 2741, 2746, 2748, 2758, 2759, 2762, 2763, 2766, 2768, 2769, 2784, 2788, 2790, 2802, 2809, 2816, 2817, 2820, 2821, 2829, 2831, 2833, 2835, 2857, 2858, 2865, 2866, 2868, 2869, 2874, 2876, 2885, 2887, 2889, 2891, 2894, 2902, 2904, 2908, 2910, 2911, 2916, 2918, 2936, 2946, 2948, 2949, 2955, 2958, 2961, 2962, 2966, 2969, 2971, 2972, 2973, 2974, 2976, 2979, 2981, 2984, 2987, 2990, 3002, 3006, 3011, 3014, 3017, 3018, 3022, 3024, 3025, 3031, 3032, 3046, 3067, 3072, 3085, 3086, 3089, 3090, 3113, 3114, 3130, 3133, 3141, 3142, 3145, 3146, 3150, 3157, 3159, 3160, 3163, 3168, 3172, 3174, 3184, 3191, 3213, 3214, 3217, 3218, 3241, 3242, 3252, 3253, 3258, 3260, 3269, 3270, 3273, 3274, 3278, 3285, 3287, 3294, 3295, 3296, 3300, 3302, 3312, 3313, 3315, 3328, 3332, 3333, 3341, 3342, 3345, 3346, 3397, 3398, 3401, 3402, 3408, 3412, 3428, 3430, 3456, 3458, 3460, 3461, 3479, 3482, 3506, 3507, 3516, 3517, 3518, 3520, 3527, 3530, 3531, 3535, 3541, 3542, 3543, 3544, 3552, 3558, 3568, 3570, 3573, 3585, 3643, 3647, 3676, 3713, 3715, 3716, 3717, 3718, 3723, 3724, 3748, 3749, 3750, 3751, 3774, 3776, 3781, 3782, 3783, 3784, 3790, 3792, 3802, 3804, 3808, 3840, 3912, 3913, 3949, 3953, 3992, 3993, 4029, 4030, 4045, 4046, 4059, 4096, 4294, 4295, 4296, 4301, 4302, 4304, 4352, 4608, 4681, 4682, 4686, 4688, 4695, 4696, 4697, 4698, 4702, 4704, 4745, 4746, 4750, 4752, 4785, 4786, 4790, 4792, 4799, 4800, 4801, 4802, 4806, 4808, 4823, 4824, 4881, 4882, 4886, 4888, 4955, 4957, 4989, 4992, 5018, 5024, 5110, 5112, 5118, 5120, 5121, 5760, 5789, 5792, 5881, 5888, 5901, 5902, 5909, 5920, 5943, 5952, 5972, 5984, 5997, 5998, 6001, 6002, 6004, 6016, 6110, 6112, 6122, 6128, 6138, 6144, 6159, 6160, 6170, 6176, 6265, 6272, 6315, 6400, 6431, 6432, 6444, 6448, 6460, 6464, 6465, 6468, 6510, 6512, 6517, 6528, 6572, 6576, 6602, 6608, 6619, 6622, 6684, 6686, 6751, 6752, 6781, 6783, 6794, 6800, 6810, 6816, 6830, 6832, 6847, 6912, 6988, 6992, 7037, 7040, 7156, 7164, 7224, 7227, 7242, 7245, 7305, 7312, 7355, 7357, 7368, 7376, 7419, 7424, 7674, 7675, 7958, 7960, 7966, 7968, 8006, 8008, 8014, 8016, 8024, 8025, 8026, 8027, 8028, 8029, 8030, 8031, 8062, 8064, 8117, 8118, 8133, 8134, 8148, 8150, 8156, 8157, 8176, 8178, 8181, 8182, 8191, 8192, 8214, 8215, 8224, 8226, 8240, 8242, 8251, 8253, 8258, 8259, 8263, 8266, 8273, 8274, 8293, 8294, 8306, 8308, 8335, 8336, 8349, 8352, 8384, 8400, 8413, 8417, 8418, 8421, 8433, 8450, 8451, 8458, 8463, 8464, 8467, 8469, 8470, 8472, 8478, 8484, 8485, 8486, 8487, 8488, 8489, 8490, 8494, 8495, 8501, 8512, 8517, 8523, 8524, 8526, 8527, 8586, 8588, 8592, 8734, 8735, 8756, 8758, 8960, 8968, 8972, 8992, 8996, 9001, 9003, 9004, 9085, 9115, 9150, 9166, 9167, 9168, 9169, 9180, 9186, 9251, 9252, 9472, 9632, 9754, 9760, 10088, 10102, 10132, 11026, 11056, 11088, 11098, 11124, 11126, 11158, 11160, 11192, 11218, 11219, 11244, 11248, 11264, 11311, 11312, 11359, 11360, 11508, 11513, 11558, 11559, 11560, 11565, 11566, 11568, 11624, 11631, 11633, 11647, 11671, 11680, 11687, 11688, 11695, 11696, 11703, 11704, 11711, 11712, 11719, 11720, 11727, 11728, 11735, 11736, 11743, 11744, 11856, 12296, 12306, 12308, 12320, 12336, 12337, 12448, 12449, 12540, 12541, 42192, 42540, 42560, 42744, 42752, 42944, 42946, 42951, 42999, 43052, 43056, 43066, 43072, 43128, 43136, 43206, 43214, 43226, 43232, 43348, 43359, 43360, 43392, 43470, 43471, 43482, 43486, 43519, 43520, 43575, 43584, 43598, 43600, 43610, 43612, 43715, 43739, 43767, 43777, 43783, 43785, 43791, 43793, 43799, 43808, 43815, 43816, 43823, 43824, 43880, 43888, 44014, 44016, 44026, 55296, 57344, 64256, 64263, 64275, 64280, 64285, 64311, 64312, 64317, 64318, 64319, 64320, 64322, 64323, 64325, 64326, 64450, 64467, 64832, 64848, 64912, 64914, 64968, 65008, 65022, 65024, 65040, 65056, 65072, 65097, 65104, 65112, 65119, 65123, 65127, 65136, 65141, 65142, 65277, 65279, 65280, 65288, 65290, 65293, 65294, 65306, 65311, 65339, 65340, 65341, 65342, 65343, 65344, 65371, 65471, 65474, 65480, 65482, 65488, 65490, 65496, 65498, 65501, 65507, 65508, 65512, 65519, 65529, 65532, 65536, 65548, 65549, 65575, 65576, 65595, 65596, 65598, 65599, 65614, 65616, 65630, 65664, 65787, 65792, 65795, 65799, 65844, 65847, 65935, 65936, 65948, 65952, 65953, 66000, 66046, 66176, 66205, 66208, 66257, 66272, 66300, 66304, 66340, 66349, 66379, 66384, 66427, 66432, 66462, 66463, 66500, 66504, 66518, 66560, 66718, 66720, 66730, 66736, 66772, 66776, 66812, 66816, 66856, 66864, 66916, 66927, 66928, 67072, 67383, 67392, 67414, 67424, 67432, 67584, 67590, 67592, 67593, 67594, 67638, 67639, 67641, 67644, 67645, 67647, 67670, 67671, 67743, 67751, 67760, 67808, 67827, 67828, 67830, 67835, 67868, 67871, 67898, 67903, 67904, 68000, 68024, 68028, 68048, 68050, 68100, 68101, 68103, 68108, 68116, 68117, 68120, 68121, 68150, 68152, 68155, 68159, 68169, 68176, 68185, 68192, 68256, 68288, 68327, 68331, 68343, 68352, 68406, 68409, 68438, 68440, 68467, 68472, 68498, 68505, 68509, 68521, 68528, 68608, 68681, 68736, 68787, 68800, 68851, 68858, 68904, 68912, 68922, 69216, 69247, 69376, 69416, 69424, 69466, 69600, 69623, 69632, 69710, 69714, 69744, 69759, 69826, 69837, 69838, 69840, 69865, 69872, 69882, 69888, 69941, 69942, 69959, 69968, 70007, 70016, 70094, 70096, 70112, 70113, 70133, 70144, 70162, 70163, 70207, 70272, 70279, 70280, 70281, 70282, 70286, 70287, 70302, 70303, 70314, 70320, 70379, 70384, 70394, 70400, 70404, 70405, 70413, 70415, 70417, 70419, 70441, 70442, 70449, 70450, 70452, 70453, 70458, 70459, 70469, 70471, 70473, 70475, 70478, 70480, 70481, 70487, 70488, 70493, 70500, 70502, 70509, 70512, 70517, 70656, 70746, 70747, 70748, 70749, 70752, 70784, 70856, 70864, 70874, 71168, 71237, 71248, 71258, 71264, 71277, 71296, 71353, 71360, 71370, 71424, 71451, 71453, 71468, 71472, 71488, 71680, 71740, 71840, 71923, 71935, 71936, 72096, 72104, 72106, 72152, 72154, 72165, 72384, 72441, 72704, 72713, 72714, 72759, 72760, 72774, 72784, 72813, 72816, 72848, 72850, 72872, 72873, 72887, 72960, 72967, 72968, 72970, 72971, 73015, 73018, 73019, 73020, 73022, 73023, 73032, 73040, 73050, 73056, 73062, 73063, 73065, 73066, 73103, 73104, 73106, 73107, 73113, 73120, 73130, 73440, 73465, 73664, 73714, 73727, 74650, 74752, 74863, 74864, 74869, 74880, 75076, 92160, 92729, 92736, 92767, 92768, 92778, 92782, 92784, 92880, 92910, 92912, 92918, 92928, 92998, 93008, 93018, 93019, 93026, 93027, 93048, 93053, 93072, 93760, 93851, 93952, 94027, 94031, 94088, 94095, 94112, 113664, 113771, 113776, 113789, 113792, 113801, 113808, 113818, 113820, 113828, 119296, 119366, 119808, 119893, 119894, 119965, 119966, 119968, 119970, 119971, 119973, 119975, 119977, 119981, 119982, 119994, 119995, 119996, 119997, 120004, 120005, 120070, 120071, 120075, 120077, 120085, 120086, 120093, 120094, 120122, 120123, 120127, 120128, 120133, 120134, 120135, 120138, 120145, 120146, 120486, 120488, 120780, 120782, 120832, 122880, 122887, 122888, 122905, 122907, 122914, 122915, 122917, 122918, 122923, 123136, 123181, 123184, 123198, 123200, 123210, 123214, 123216, 123584, 123642, 123647, 123648, 124928, 125125, 125127, 125143, 125184, 125260, 125264, 125274, 125278, 125280, 126065, 126133, 126209, 126270, 126464, 126468, 126469, 126496, 126497, 126499, 126500, 126501, 126503, 126504, 126505, 126515, 126516, 126520, 126521, 126522, 126523, 126524, 126530, 126531, 126535, 126536, 126537, 126538, 126539, 126540, 126541, 126544, 126545, 126547, 126548, 126549, 126551, 126552, 126553, 126554, 126555, 126556, 126557, 126558, 126559, 126560, 126561, 126563, 126564, 126565, 126567, 126571, 126572, 126579, 126580, 126584, 126585, 126589, 126590, 126591, 126592, 126602, 126603, 126620, 126625, 126628, 126629, 126634, 126635, 126652, 126704, 126706, 129024, 129036, 129040, 129096, 129104, 129114, 129120, 129160, 129168, 129198, 917505, 917506, 917536, 917632, 917760, 918000 }
+ local t={ 0, 167, 168, 169, 170, 174, 175, 177, 178, 188, 191, 215, 216, 247, 248, 746, 748, 888, 890, 896, 900, 907, 908, 909, 910, 930, 931, 1328, 1329, 1367, 1369, 1419, 1421, 1424, 1425, 1480, 1488, 1515, 1519, 1525, 1536, 1565, 1566, 1806, 1807, 1867, 1869, 1970, 1984, 2043, 2045, 2094, 2096, 2111, 2112, 2140, 2142, 2143, 2144, 2155, 2208, 2229, 2230, 2248, 2259, 2436, 2437, 2445, 2447, 2449, 2451, 2473, 2474, 2481, 2482, 2483, 2486, 2490, 2492, 2501, 2503, 2505, 2507, 2511, 2519, 2520, 2524, 2526, 2527, 2532, 2534, 2559, 2561, 2564, 2565, 2571, 2575, 2577, 2579, 2601, 2602, 2609, 2610, 2612, 2613, 2615, 2616, 2618, 2620, 2621, 2622, 2627, 2631, 2633, 2635, 2638, 2641, 2642, 2649, 2653, 2654, 2655, 2662, 2679, 2689, 2692, 2693, 2702, 2703, 2706, 2707, 2729, 2730, 2737, 2738, 2740, 2741, 2746, 2748, 2758, 2759, 2762, 2763, 2766, 2768, 2769, 2784, 2788, 2790, 2802, 2809, 2816, 2817, 2820, 2821, 2829, 2831, 2833, 2835, 2857, 2858, 2865, 2866, 2868, 2869, 2874, 2876, 2885, 2887, 2889, 2891, 2894, 2901, 2904, 2908, 2910, 2911, 2916, 2918, 2936, 2946, 2948, 2949, 2955, 2958, 2961, 2962, 2966, 2969, 2971, 2972, 2973, 2974, 2976, 2979, 2981, 2984, 2987, 2990, 3002, 3006, 3011, 3014, 3017, 3018, 3022, 3024, 3025, 3031, 3032, 3046, 3067, 3072, 3085, 3086, 3089, 3090, 3113, 3114, 3130, 3133, 3141, 3142, 3145, 3146, 3150, 3157, 3159, 3160, 3163, 3168, 3172, 3174, 3184, 3191, 3213, 3214, 3217, 3218, 3241, 3242, 3252, 3253, 3258, 3260, 3269, 3270, 3273, 3274, 3278, 3285, 3287, 3294, 3295, 3296, 3300, 3302, 3312, 3313, 3315, 3328, 3341, 3342, 3345, 3346, 3397, 3398, 3401, 3402, 3408, 3412, 3428, 3430, 3456, 3457, 3460, 3461, 3479, 3482, 3506, 3507, 3516, 3517, 3518, 3520, 3527, 3530, 3531, 3535, 3541, 3542, 3543, 3544, 3552, 3558, 3568, 3570, 3573, 3585, 3643, 3647, 3676, 3713, 3715, 3716, 3717, 3718, 3723, 3724, 3748, 3749, 3750, 3751, 3774, 3776, 3781, 3782, 3783, 3784, 3790, 3792, 3802, 3804, 3808, 3840, 3912, 3913, 3949, 3953, 3992, 3993, 4029, 4030, 4045, 4046, 4059, 4096, 4294, 4295, 4296, 4301, 4302, 4304, 4352, 4608, 4681, 4682, 4686, 4688, 4695, 4696, 4697, 4698, 4702, 4704, 4745, 4746, 4750, 4752, 4785, 4786, 4790, 4792, 4799, 4800, 4801, 4802, 4806, 4808, 4823, 4824, 4881, 4882, 4886, 4888, 4955, 4957, 4989, 4992, 5018, 5024, 5110, 5112, 5118, 5120, 5121, 5760, 5789, 5792, 5881, 5888, 5901, 5902, 5909, 5920, 5943, 5952, 5972, 5984, 5997, 5998, 6001, 6002, 6004, 6016, 6110, 6112, 6122, 6128, 6138, 6144, 6159, 6160, 6170, 6176, 6265, 6272, 6315, 6400, 6431, 6432, 6444, 6448, 6460, 6464, 6465, 6468, 6510, 6512, 6517, 6528, 6572, 6576, 6602, 6608, 6619, 6622, 6684, 6686, 6751, 6752, 6781, 6783, 6794, 6800, 6810, 6816, 6830, 6832, 6849, 6912, 6988, 6992, 7037, 7040, 7156, 7164, 7224, 7227, 7242, 7245, 7305, 7312, 7355, 7357, 7368, 7376, 7419, 7424, 7674, 7675, 7958, 7960, 7966, 7968, 8006, 8008, 8014, 8016, 8024, 8025, 8026, 8027, 8028, 8029, 8030, 8031, 8062, 8064, 8117, 8118, 8133, 8134, 8148, 8150, 8156, 8157, 8176, 8178, 8181, 8182, 8191, 8192, 8214, 8215, 8224, 8226, 8240, 8242, 8251, 8253, 8258, 8259, 8263, 8266, 8273, 8274, 8293, 8294, 8306, 8308, 8335, 8336, 8349, 8352, 8384, 8400, 8413, 8417, 8418, 8421, 8433, 8450, 8451, 8458, 8463, 8464, 8467, 8469, 8470, 8472, 8478, 8484, 8485, 8486, 8487, 8488, 8489, 8490, 8494, 8495, 8501, 8512, 8517, 8523, 8524, 8526, 8527, 8586, 8588, 8592, 8734, 8735, 8756, 8758, 8960, 8968, 8972, 8992, 8996, 9001, 9003, 9004, 9085, 9115, 9150, 9166, 9167, 9168, 9169, 9180, 9186, 9251, 9252, 9472, 9632, 9754, 9760, 10088, 10102, 10132, 11026, 11056, 11088, 11098, 11124, 11126, 11158, 11160, 11192, 11218, 11219, 11244, 11248, 11264, 11311, 11312, 11359, 11360, 11508, 11513, 11558, 11559, 11560, 11565, 11566, 11568, 11624, 11631, 11633, 11647, 11671, 11680, 11687, 11688, 11695, 11696, 11703, 11704, 11711, 11712, 11719, 11720, 11727, 11728, 11735, 11736, 11743, 11744, 11856, 11858, 11859, 12296, 12306, 12308, 12320, 12336, 12337, 12448, 12449, 12540, 12541, 42192, 42540, 42560, 42744, 42752, 42944, 42946, 42955, 42997, 43053, 43056, 43066, 43072, 43128, 43136, 43206, 43214, 43226, 43232, 43348, 43359, 43360, 43392, 43470, 43471, 43482, 43486, 43519, 43520, 43575, 43584, 43598, 43600, 43610, 43612, 43715, 43739, 43767, 43777, 43783, 43785, 43791, 43793, 43799, 43808, 43815, 43816, 43823, 43824, 43884, 43888, 44014, 44016, 44026, 55296, 57344, 64256, 64263, 64275, 64280, 64285, 64311, 64312, 64317, 64318, 64319, 64320, 64322, 64323, 64325, 64326, 64450, 64467, 64832, 64848, 64912, 64914, 64968, 65008, 65022, 65024, 65040, 65056, 65072, 65097, 65104, 65112, 65119, 65123, 65127, 65136, 65141, 65142, 65277, 65279, 65280, 65288, 65290, 65293, 65294, 65306, 65311, 65339, 65340, 65341, 65342, 65343, 65344, 65371, 65471, 65474, 65480, 65482, 65488, 65490, 65496, 65498, 65501, 65507, 65508, 65512, 65519, 65529, 65532, 65536, 65548, 65549, 65575, 65576, 65595, 65596, 65598, 65599, 65614, 65616, 65630, 65664, 65787, 65792, 65795, 65799, 65844, 65847, 65935, 65936, 65949, 65952, 65953, 66000, 66046, 66176, 66205, 66208, 66257, 66272, 66300, 66304, 66340, 66349, 66379, 66384, 66427, 66432, 66462, 66463, 66500, 66504, 66518, 66560, 66718, 66720, 66730, 66736, 66772, 66776, 66812, 66816, 66856, 66864, 66916, 66927, 66928, 67072, 67383, 67392, 67414, 67424, 67432, 67584, 67590, 67592, 67593, 67594, 67638, 67639, 67641, 67644, 67645, 67647, 67670, 67671, 67743, 67751, 67760, 67808, 67827, 67828, 67830, 67835, 67868, 67871, 67898, 67903, 67904, 68000, 68024, 68028, 68048, 68050, 68100, 68101, 68103, 68108, 68116, 68117, 68120, 68121, 68150, 68152, 68155, 68159, 68169, 68176, 68185, 68192, 68256, 68288, 68327, 68331, 68343, 68352, 68406, 68409, 68438, 68440, 68467, 68472, 68498, 68505, 68509, 68521, 68528, 68608, 68681, 68736, 68787, 68800, 68851, 68858, 68904, 68912, 68922, 69216, 69247, 69248, 69290, 69291, 69294, 69296, 69298, 69376, 69416, 69424, 69466, 69552, 69580, 69600, 69623, 69632, 69710, 69714, 69744, 69759, 69826, 69837, 69838, 69840, 69865, 69872, 69882, 69888, 69941, 69942, 69960, 69968, 70007, 70016, 70112, 70113, 70133, 70144, 70162, 70163, 70207, 70272, 70279, 70280, 70281, 70282, 70286, 70287, 70302, 70303, 70314, 70320, 70379, 70384, 70394, 70400, 70404, 70405, 70413, 70415, 70417, 70419, 70441, 70442, 70449, 70450, 70452, 70453, 70458, 70459, 70469, 70471, 70473, 70475, 70478, 70480, 70481, 70487, 70488, 70493, 70500, 70502, 70509, 70512, 70517, 70656, 70748, 70749, 70754, 70784, 70856, 70864, 70874, 71168, 71237, 71248, 71258, 71264, 71277, 71296, 71353, 71360, 71370, 71424, 71451, 71453, 71468, 71472, 71488, 71680, 71740, 71840, 71923, 71935, 71943, 71945, 71946, 71948, 71956, 71957, 71959, 71960, 71990, 71991, 71993, 71995, 72007, 72016, 72026, 72096, 72104, 72106, 72152, 72154, 72165, 72384, 72441, 72704, 72713, 72714, 72759, 72760, 72774, 72784, 72813, 72816, 72848, 72850, 72872, 72873, 72887, 72960, 72967, 72968, 72970, 72971, 73015, 73018, 73019, 73020, 73022, 73023, 73032, 73040, 73050, 73056, 73062, 73063, 73065, 73066, 73103, 73104, 73106, 73107, 73113, 73120, 73130, 73440, 73465, 73648, 73649, 73664, 73714, 73727, 74650, 74752, 74863, 74864, 74869, 74880, 75076, 92160, 92729, 92736, 92767, 92768, 92778, 92782, 92784, 92880, 92910, 92912, 92918, 92928, 92998, 93008, 93018, 93019, 93026, 93027, 93048, 93053, 93072, 93760, 93851, 93952, 94027, 94031, 94088, 94095, 94112, 113664, 113771, 113776, 113789, 113792, 113801, 113808, 113818, 113820, 113828, 119296, 119366, 119808, 119893, 119894, 119965, 119966, 119968, 119970, 119971, 119973, 119975, 119977, 119981, 119982, 119994, 119995, 119996, 119997, 120004, 120005, 120070, 120071, 120075, 120077, 120085, 120086, 120093, 120094, 120122, 120123, 120127, 120128, 120133, 120134, 120135, 120138, 120145, 120146, 120486, 120488, 120780, 120782, 120832, 122880, 122887, 122888, 122905, 122907, 122914, 122915, 122917, 122918, 122923, 123136, 123181, 123184, 123198, 123200, 123210, 123214, 123216, 123584, 123642, 123647, 123648, 124928, 125125, 125127, 125143, 125184, 125260, 125264, 125274, 125278, 125280, 126065, 126133, 126209, 126270, 126464, 126468, 126469, 126496, 126497, 126499, 126500, 126501, 126503, 126504, 126505, 126515, 126516, 126520, 126521, 126522, 126523, 126524, 126530, 126531, 126535, 126536, 126537, 126538, 126539, 126540, 126541, 126544, 126545, 126547, 126548, 126549, 126551, 126552, 126553, 126554, 126555, 126556, 126557, 126558, 126559, 126560, 126561, 126563, 126564, 126565, 126567, 126571, 126572, 126579, 126580, 126584, 126585, 126589, 126590, 126591, 126592, 126602, 126603, 126620, 126625, 126628, 126629, 126634, 126635, 126652, 126704, 126706, 129024, 129036, 129040, 129096, 129104, 129114, 129120, 129160, 129168, 129198, 129200, 129202, 129792, 129939, 129940, 129995, 130032, 130042, 917505, 917506, 917536, 917632, 917760, 918000 }
local function rotate_in_uax50(i)
local lo, hi = 1, #t
while lo < hi do
@@ -808,15 +791,44 @@ do
end
do
+ local cache_ver = 22
local nameonly, lower = file.nameonly, string.lower
+ local lfs = require"lfs"
+ local file_attributes = lfs.attributes
+ local load_cache, save_cache = ltjb.load_cache, ltjb.save_cache
local function prepare_extra_data_base(tfmdata)
if (not tfmdata) or (not tfmdata.filename) then return end
local bname = tfmdata.psname or nameonly(tfmdata.filename)
if not font_extra_basename[bname] then
- ltjb.remove_cache("extra_" .. lower(bname)) -- remove cache
- local dest = ltju.get_vmet_table(tfmdata, dest)
- dest = list_rotate_glyphs(tfmdata, dest)
- font_extra_basename[bname] = dest or {}
+ -- if the cache is present, read it
+ --
+ local newtime = file_attributes(tfmdata.filename,"modification")
+ local v = "extra_" .. string.lower(bname)
+ local dest = load_cache(
+ v,
+ function (t)
+ return (t.lotf_version~=luaotfload.version)
+ or (t.version~=cache_ver) or (t.modtime~=newtime)
+ end
+ )
+ -- if the cache is not found or outdated, save the cache
+ if dest then
+ font_extra_basename[bname] = dest[1] or {}
+ local vheight, vorigin = dest[1].vheight, dest[1].vorigin
+ local vhd, vod = vheight.default, vorigin.default
+ setmetatable(vheight, {__index = function () return vhd end } )
+ setmetatable(vorigin, {__index = function () return vod end } )
+ else
+ local dest = ltju.get_vmet_table(tfmdata, nil)
+ dest = list_rotate_glyphs(tfmdata, dest)
+ font_extra_basename[bname] = dest or {}
+ save_cache(v,
+ { modtime = newtime,
+ version = cache_ver,
+ lotf_version = luaotfload.version,
+ dest,
+ })
+ end
return bname
end
end
@@ -825,14 +837,14 @@ do
local bname = res.psname or nameonly(res.filename)
local t = font_extra_basename[bname]
if not t then bname = prepare_extra_data_base(res) end
- font_extra_info[id] = t or font_extra_basename[bname]
+ font_extra_info[id] = t or font_extra_basename[bname]
end
end
luatexbase.add_to_callback(
'luaotfload.patch_font',
function (tfmdata)
- -- these function is executed one time per one fontfile
- prepare_extra_data_base(tfmdata); return tfmdata
+ -- these function is executed one time per one fontfile
+ prepare_extra_data_base(tfmdata); return tfmdata
end,
'ltj.prepare_extra_data', 1)
luatexbase.add_to_callback(
@@ -893,7 +905,7 @@ luatexbase.add_to_callback(
local t = font_getfont(fnum)
if not t then return fmtable end
for i,v in pairs(vert_form_table) do
- if t.characters[v] then vform[i] = v end
+ if t.characters[v] then vform[i] = v end
end
if ltju.specified_feature(fnum, 'jpotf') then
for i,v in pairs(vert_jpotf_table) do
@@ -902,7 +914,7 @@ luatexbase.add_to_callback(
end
if not ltju.exist_feature(fnum, 'vert') and not ltju.exist_feature(fnum, 'vrt2') then
-- 現在の (script, lang) で vert もvrt2 も有効にできない場合,
- -- 全 (script,lang) の vert を強制的に適用
+ -- 全 (script,lang) の vert を強制的に適用
ltju.loop_over_feat(t, vert_feat, function (i,k) vform[i] = vform[i] or k end, true)
end
-- vform の中身を vert 適用結果に変える
@@ -910,7 +922,7 @@ luatexbase.add_to_callback(
function (i,k)
for j,w in pairs(vform) do
if (i==j)and(w==k) then vform[j]=nil elseif w==i then vform[j] = k end
- end
+ end
end)
return fmtable
end, 'ltj.get_vert_form', 1
@@ -929,8 +941,8 @@ do
if cidinfo and cidinfo.registry and cidinfo.ordering then
local rd = ltjr_prepare_cid_font(cidinfo.registry, cidinfo.ordering)
if rd then
- local ru = rd.resources.unicodes -- defined by LuaTeX-ja
- local rc = rd.characters
+ local ru = rd.resources.unicodes -- defined by LuaTeX-ja
+ local rc = rd.characters
for i,v in pairs(tfmdata.characters) do
local w = ru[cidinfo.ordering .. "." .. tostring(v.index)]
if w then
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-kinsoku.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-kinsoku.lua
deleted file mode 100644
index 1f277c90fa3..00000000000
--- a/Master/texmf-dist/tex/luatex/luatexja/ltj-kinsoku.lua
+++ /dev/null
@@ -1,1035 +0,0 @@
-return {
- [0]=500,
- {
- ["shrink"]=26214,
- ["shrink_order"]=0,
- ["stretch"]=26214,
- ["stretch_order"]=0,
- ["width"]=0,
- },
- {
- ["shrink"]=65536,
- ["shrink_order"]=0,
- ["stretch"]=65536,
- ["stretch_order"]=0,
- ["width"]=157649,
- },
- [256]=51,
- [512]=52,
- [768]=53,
- [1024]=12295,
- [1025]=19968,
- [1026]=20108,
- [1027]=19977,
- [1028]=22235,
- [1029]=20116,
- [1030]=20845,
- [1031]=19971,
- [1032]=20843,
- [1033]=20061,
- [2097185]=10000,
- [2097186]=10000,
- [2097189]=500,
- [2097190]=500,
- [2097191]=10000,
- [2097193]=10000,
- [2097194]=500,
- [2097195]=500,
- [2097196]=10000,
- [2097197]=10000,
- [2097198]=10000,
- [2097199]=500,
- [2097210]=10000,
- [2097211]=10000,
- [2097215]=10000,
- [2097245]=10000,
- [2097322]=10000,
- [2097330]=10000,
- [2097331]=10000,
- [2097332]=10000,
- [2097335]=10000,
- [2097337]=10000,
- [2097338]=10000,
- [2097339]=10000,
- [2097872]=10000,
- [2105369]=10000,
- [2105373]=10000,
- [2105381]=250,
- [2105382]=250,
- [2105404]=10000,
- [2105415]=10000,
- [2105416]=10000,
- [2105417]=10000,
- [2105634]=10000,
- [2105874]=200,
- [2107782]=10000,
- [2109441]=10000,
- [2109442]=10000,
- [2109445]=10000,
- [2109449]=10000,
- [2109451]=10000,
- [2109453]=10000,
- [2109455]=10000,
- [2109457]=10000,
- [2109461]=10000,
- [2109463]=10000,
- [2109465]=10000,
- [2109471]=10000,
- [2109491]=10000,
- [2109492]=10000,
- [2109493]=10000,
- [2109499]=10000,
- [2109505]=150,
- [2109507]=150,
- [2109509]=150,
- [2109511]=150,
- [2109513]=150,
- [2109539]=150,
- [2109571]=150,
- [2109573]=150,
- [2109575]=150,
- [2109582]=150,
- [2109589]=150,
- [2109590]=150,
- [2109595]=10000,
- [2109596]=10000,
- [2109597]=10000,
- [2109598]=10000,
- [2109601]=150,
- [2109603]=150,
- [2109605]=150,
- [2109607]=150,
- [2109609]=150,
- [2109635]=150,
- [2109667]=150,
- [2109669]=150,
- [2109671]=150,
- [2109678]=150,
- [2109685]=150,
- [2109686]=150,
- [2109691]=10000,
- [2109692]=10000,
- [2109693]=10000,
- [2109694]=10000,
- [2109936]=150,
- [2109937]=150,
- [2109938]=150,
- [2109939]=150,
- [2109940]=150,
- [2109941]=150,
- [2109942]=150,
- [2109943]=150,
- [2109944]=150,
- [2109945]=150,
- [2109946]=150,
- [2109947]=150,
- [2109948]=150,
- [2109949]=150,
- [2109950]=150,
- [2109951]=150,
- [2162433]=10000,
- [2162437]=200,
- [2162438]=200,
- [2162441]=10000,
- [2162443]=200,
- [2162444]=10000,
- [2162445]=200,
- [2162446]=10000,
- [2162458]=10000,
- [2162459]=10000,
- [2162461]=200,
- [2162463]=10000,
- [2162493]=10000,
- [2162525]=10000,
- [2162528]=10000,
- [2162529]=10000,
- [2162531]=10000,
- [2162532]=10000,
- [2162590]=10000,
- [2162591]=10000,
- [4194339]=500,
- [4194340]=500,
- [4194344]=10000,
- [4194395]=10000,
- [4194400]=10000,
- [4194465]=10000,
- [4194475]=10000,
- [4194495]=10000,
- [4202520]=10000,
- [4202524]=10000,
- [4202668]=10000,
- [4204933]=10000,
- [4206600]=10000,
- [4206602]=10000,
- [4206604]=10000,
- [4206606]=10000,
- [4206608]=10000,
- [4206612]=10000,
- [4206614]=10000,
- [4206616]=10000,
- [4206621]=10000,
- [4259587]=200,
- [4259588]=200,
- [4259592]=10000,
- [4259643]=10000,
- [4259648]=10000,
- [4259675]=10000,
- [4259679]=10000,
- [4259682]=10000,
- [6299648]=1,
- [6299649]=1,
- [6299650]=1,
- [6299651]=1,
- [6299652]=1,
- [6299653]=1,
- [6299654]=1,
- [6299655]=1,
- [6299656]=1,
- [6299657]=1,
- [6299658]=1,
- [6299659]=1,
- [6299660]=1,
- [6299661]=1,
- [6299662]=1,
- [6299663]=1,
- [6299664]=1,
- [6299665]=1,
- [6299666]=1,
- [6299667]=1,
- [6299668]=1,
- [6299669]=1,
- [6299670]=1,
- [6299671]=1,
- [6299672]=1,
- [6299673]=1,
- [6299674]=1,
- [6299675]=1,
- [6299676]=1,
- [6299677]=1,
- [6299678]=1,
- [6299679]=1,
- [6299680]=1,
- [6299681]=1,
- [6299682]=1,
- [6299683]=1,
- [6299684]=1,
- [6299685]=1,
- [6299686]=1,
- [6299687]=1,
- [6299688]=1,
- [6299689]=1,
- [6299690]=1,
- [6299691]=1,
- [6299692]=1,
- [6299693]=1,
- [6299694]=1,
- [6299695]=1,
- [6299696]=1,
- [6299697]=1,
- [6299698]=1,
- [6299699]=1,
- [6299700]=1,
- [6299701]=1,
- [6299702]=1,
- [6299703]=1,
- [6299704]=1,
- [6299705]=1,
- [6299706]=1,
- [6299707]=1,
- [6299708]=1,
- [6299709]=1,
- [6299710]=1,
- [6299711]=1,
- [6299712]=1,
- [6299713]=1,
- [6299714]=1,
- [6299715]=1,
- [6299716]=1,
- [6299717]=1,
- [6299718]=1,
- [6299719]=1,
- [6299720]=1,
- [6299721]=1,
- [6299722]=1,
- [6299723]=1,
- [6299724]=1,
- [6299725]=1,
- [6299726]=1,
- [6299727]=1,
- [6299728]=1,
- [6299729]=1,
- [6299730]=1,
- [6299731]=1,
- [6299732]=1,
- [6299733]=1,
- [6299734]=1,
- [6299735]=1,
- [6299736]=1,
- [6299737]=1,
- [6299738]=1,
- [6299739]=1,
- [6299740]=1,
- [6299741]=1,
- [6299742]=1,
- [6299743]=1,
- [6299744]=1,
- [6299745]=1,
- [6299746]=1,
- [6299747]=1,
- [6299748]=1,
- [6299749]=1,
- [6299750]=1,
- [6299751]=1,
- [6299752]=1,
- [6299753]=1,
- [6299754]=1,
- [6299755]=1,
- [6299756]=1,
- [6299757]=1,
- [6299758]=1,
- [6299759]=1,
- [6303744]=1,
- [6303745]=1,
- [6303746]=1,
- [6303747]=1,
- [6303748]=1,
- [6303749]=1,
- [6303750]=1,
- [6303751]=1,
- [6303752]=1,
- [6303753]=1,
- [6303754]=1,
- [6303755]=1,
- [6303756]=1,
- [6303757]=1,
- [6303758]=1,
- [6303759]=1,
- [6303760]=1,
- [6303761]=1,
- [6303762]=1,
- [6303763]=1,
- [6303764]=1,
- [6303765]=1,
- [6303766]=1,
- [6303767]=1,
- [6303768]=1,
- [6303769]=1,
- [6303770]=1,
- [6303771]=1,
- [6303772]=1,
- [6303773]=1,
- [6303774]=1,
- [6303775]=1,
- [6303776]=1,
- [6303777]=1,
- [6303778]=1,
- [6303779]=1,
- [6303780]=1,
- [6303781]=1,
- [6303782]=1,
- [6303783]=1,
- [6303784]=1,
- [6303785]=1,
- [6303786]=1,
- [6303787]=1,
- [6303788]=1,
- [6303789]=1,
- [6303790]=1,
- [6303791]=1,
- [6303792]=1,
- [6303793]=1,
- [6303794]=1,
- [6303795]=1,
- [6303796]=1,
- [6303797]=1,
- [6303798]=1,
- [6303799]=1,
- [6303800]=1,
- [6303801]=1,
- [6303802]=1,
- [6303803]=1,
- [6303804]=1,
- [6303805]=1,
- [6303806]=1,
- [6303807]=1,
- [6356736]=1,
- [6356737]=1,
- [6356738]=1,
- [6356739]=1,
- [6356740]=1,
- [6356741]=1,
- [6356742]=1,
- [6356743]=1,
- [6356744]=1,
- [6356745]=1,
- [6356746]=1,
- [6356747]=1,
- [6356748]=1,
- [6356749]=1,
- [6356750]=1,
- [6356751]=1,
- [6356752]=1,
- [6356753]=1,
- [6356754]=1,
- [6356755]=1,
- [6356756]=1,
- [6356757]=1,
- [6356758]=1,
- [6356759]=1,
- [6356760]=1,
- [6356761]=1,
- [6356762]=1,
- [6356763]=1,
- [6356764]=1,
- [6356765]=1,
- [6356766]=1,
- [6356767]=1,
- [6356768]=1,
- [6356769]=1,
- [6356770]=1,
- [6356771]=1,
- [6356772]=1,
- [6356773]=1,
- [6356774]=1,
- [6356775]=1,
- [6356776]=1,
- [6356777]=1,
- [6356778]=1,
- [6356779]=1,
- [6356780]=1,
- [6356781]=1,
- [6356782]=1,
- [6356783]=1,
- [6356784]=1,
- [6356785]=1,
- [6356786]=1,
- [6356787]=1,
- [6356788]=1,
- [6356789]=1,
- [6356790]=1,
- [6356791]=1,
- [6356792]=1,
- [6356793]=1,
- [6356794]=1,
- [6356795]=1,
- [6356796]=1,
- [6356797]=1,
- [6356798]=1,
- [6356799]=1,
- [6356800]=1,
- [6356801]=1,
- [6356802]=1,
- [6356803]=1,
- [6356804]=1,
- [6356805]=1,
- [6356806]=1,
- [6356807]=1,
- [6356808]=1,
- [6356809]=1,
- [6356810]=1,
- [6356811]=1,
- [6356812]=1,
- [6356813]=1,
- [6356814]=1,
- [6356815]=1,
- [6356816]=1,
- [6356817]=1,
- [6356818]=1,
- [6356819]=1,
- [6356820]=1,
- [6356821]=1,
- [6356822]=1,
- [6356823]=1,
- [6356824]=1,
- [6356825]=1,
- [6356826]=1,
- [6356827]=1,
- [6356828]=1,
- [6356829]=1,
- [6356830]=1,
- [6356831]=1,
- [6356832]=1,
- [6356833]=1,
- [6356834]=1,
- [6356835]=1,
- [6356836]=1,
- [6356837]=1,
- [6356838]=1,
- [6356839]=1,
- [6356840]=1,
- [6356841]=1,
- [6356842]=1,
- [6356843]=1,
- [6356844]=1,
- [6356845]=1,
- [6356846]=1,
- [6356847]=1,
- [6356848]=1,
- [6356849]=1,
- [6356850]=1,
- [6356851]=1,
- [6356852]=1,
- [6356853]=1,
- [6356854]=1,
- [6356855]=1,
- [6356856]=1,
- [6356857]=1,
- [6356858]=1,
- [6356859]=1,
- [6356860]=1,
- [6356861]=1,
- [6356862]=1,
- [6356863]=1,
- [6356864]=1,
- [6356865]=1,
- [6356866]=1,
- [6356867]=1,
- [6356868]=1,
- [6356869]=1,
- [6356870]=1,
- [6356871]=1,
- [6356872]=1,
- [6356873]=1,
- [6356874]=1,
- [6356875]=1,
- [6356876]=1,
- [6356877]=1,
- [6356878]=1,
- [6356879]=1,
- [6356880]=1,
- [6356881]=1,
- [6356882]=1,
- [6356883]=1,
- [6356884]=1,
- [6356885]=1,
- [6356886]=1,
- [6356887]=1,
- [6356888]=1,
- [6356889]=1,
- [6356890]=1,
- [6356891]=1,
- [6356892]=1,
- [6356893]=1,
- [6356894]=1,
- [6356895]=1,
- [6356896]=1,
- [6356897]=1,
- [6356898]=1,
- [6356899]=1,
- [6356900]=1,
- [6356901]=1,
- [6356902]=1,
- [6356903]=1,
- [6356904]=1,
- [6356905]=1,
- [6356906]=1,
- [6356907]=1,
- [6356908]=1,
- [6356909]=1,
- [6356910]=1,
- [6356911]=1,
- [6356912]=1,
- [6356913]=1,
- [6356914]=1,
- [6356915]=1,
- [6356916]=1,
- [6356917]=1,
- [6356918]=1,
- [6356919]=1,
- [6356920]=1,
- [6356921]=1,
- [6356922]=1,
- [6356923]=1,
- [6356924]=1,
- [6356925]=1,
- [6356926]=1,
- [6356927]=1,
- [6356928]=1,
- [6356929]=1,
- [6356930]=1,
- [6356931]=1,
- [6356932]=1,
- [6356933]=1,
- [6356934]=1,
- [6356935]=1,
- [6356936]=1,
- [6356937]=1,
- [6356938]=1,
- [6356939]=1,
- [6356940]=1,
- [6356941]=1,
- [6356942]=1,
- [6356943]=1,
- [6356944]=1,
- [6356945]=1,
- [6356946]=1,
- [6356947]=1,
- [6356948]=1,
- [6356949]=1,
- [6356950]=1,
- [6356951]=1,
- [6356952]=1,
- [6356953]=1,
- [6356954]=1,
- [6356955]=1,
- [6356956]=1,
- [6356957]=1,
- [6356958]=1,
- [6356959]=1,
- [6356960]=1,
- [6356961]=1,
- [6356962]=1,
- [6356963]=1,
- [6356964]=1,
- [6356965]=1,
- [6356966]=1,
- [6356967]=1,
- [6356968]=1,
- [6356969]=1,
- [6356970]=1,
- [6356971]=1,
- [6356972]=1,
- [6356973]=1,
- [6356974]=1,
- [6356975]=1,
- [8388608]=0,
- [8388609]=0,
- [8388610]=0,
- [8388611]=0,
- [8388612]=0,
- [8388613]=0,
- [8388614]=0,
- [8388615]=0,
- [8388616]=0,
- [8388617]=0,
- [8388618]=0,
- [8388619]=0,
- [8388620]=0,
- [8388621]=0,
- [8388622]=0,
- [8388623]=0,
- [8388624]=0,
- [8388625]=0,
- [8388626]=0,
- [8388627]=0,
- [8388628]=0,
- [8388629]=0,
- [8388630]=0,
- [8388631]=0,
- [8388632]=0,
- [8388633]=0,
- [8388634]=0,
- [8388635]=0,
- [8388636]=0,
- [8388637]=0,
- [8388638]=0,
- [8388639]=0,
- [8388640]=0,
- [8388641]=0,
- [8388642]=0,
- [8388643]=0,
- [8388644]=0,
- [8388645]=0,
- [8388646]=0,
- [8388647]=2,
- [8388648]=1,
- [8388649]=2,
- [8388650]=0,
- [8388651]=0,
- [8388652]=2,
- [8388653]=0,
- [8388654]=2,
- [8388655]=0,
- [8388656]=3,
- [8388657]=3,
- [8388658]=3,
- [8388659]=3,
- [8388660]=3,
- [8388661]=3,
- [8388662]=3,
- [8388663]=3,
- [8388664]=3,
- [8388665]=3,
- [8388666]=0,
- [8388667]=2,
- [8388668]=0,
- [8388669]=0,
- [8388670]=0,
- [8388671]=0,
- [8388672]=0,
- [8388673]=3,
- [8388674]=3,
- [8388675]=3,
- [8388676]=3,
- [8388677]=3,
- [8388678]=3,
- [8388679]=3,
- [8388680]=3,
- [8388681]=3,
- [8388682]=3,
- [8388683]=3,
- [8388684]=3,
- [8388685]=3,
- [8388686]=3,
- [8388687]=3,
- [8388688]=3,
- [8388689]=3,
- [8388690]=3,
- [8388691]=3,
- [8388692]=3,
- [8388693]=3,
- [8388694]=3,
- [8388695]=3,
- [8388696]=3,
- [8388697]=3,
- [8388698]=3,
- [8388699]=1,
- [8388700]=0,
- [8388701]=2,
- [8388702]=0,
- [8388703]=0,
- [8388704]=1,
- [8388705]=3,
- [8388706]=3,
- [8388707]=3,
- [8388708]=3,
- [8388709]=3,
- [8388710]=3,
- [8388711]=3,
- [8388712]=3,
- [8388713]=3,
- [8388714]=3,
- [8388715]=3,
- [8388716]=3,
- [8388717]=3,
- [8388718]=3,
- [8388719]=3,
- [8388720]=3,
- [8388721]=3,
- [8388722]=3,
- [8388723]=3,
- [8388724]=3,
- [8388725]=3,
- [8388726]=3,
- [8388727]=3,
- [8388728]=3,
- [8388729]=3,
- [8388730]=3,
- [8388731]=0,
- [8388732]=0,
- [8388733]=0,
- [8388734]=0,
- [8388735]=0,
- [8388736]=3,
- [8388737]=3,
- [8388738]=3,
- [8388739]=3,
- [8388740]=3,
- [8388741]=3,
- [8388742]=3,
- [8388743]=3,
- [8388744]=3,
- [8388745]=3,
- [8388746]=3,
- [8388747]=3,
- [8388748]=3,
- [8388749]=3,
- [8388750]=3,
- [8388751]=3,
- [8388752]=3,
- [8388753]=3,
- [8388754]=3,
- [8388755]=3,
- [8388756]=3,
- [8388757]=3,
- [8388758]=3,
- [8388759]=3,
- [8388760]=3,
- [8388761]=3,
- [8388762]=3,
- [8388763]=3,
- [8388764]=3,
- [8388765]=3,
- [8388766]=3,
- [8388767]=3,
- [8388768]=3,
- [8388769]=1,
- [8388770]=3,
- [8388771]=3,
- [8388772]=3,
- [8388773]=0,
- [8388774]=3,
- [8388775]=3,
- [8388776]=3,
- [8388777]=3,
- [8388778]=2,
- [8388779]=1,
- [8388780]=3,
- [8388781]=3,
- [8388782]=3,
- [8388783]=3,
- [8388784]=2,
- [8388785]=3,
- [8388786]=2,
- [8388787]=2,
- [8388788]=3,
- [8388789]=3,
- [8388790]=3,
- [8388791]=3,
- [8388792]=3,
- [8388793]=2,
- [8388794]=2,
- [8388795]=2,
- [8388796]=3,
- [8388797]=3,
- [8388798]=3,
- [8388799]=1,
- [8388800]=3,
- [8388801]=3,
- [8388802]=3,
- [8388803]=3,
- [8388804]=3,
- [8388805]=3,
- [8388806]=3,
- [8388807]=3,
- [8388808]=3,
- [8388809]=3,
- [8388810]=3,
- [8388811]=3,
- [8388812]=3,
- [8388813]=3,
- [8388814]=3,
- [8388815]=3,
- [8388816]=3,
- [8388817]=3,
- [8388818]=3,
- [8388819]=3,
- [8388820]=3,
- [8388821]=3,
- [8388822]=3,
- [8388823]=3,
- [8388824]=3,
- [8388825]=3,
- [8388826]=3,
- [8388827]=3,
- [8388828]=3,
- [8388829]=3,
- [8388830]=3,
- [8388831]=3,
- [8388832]=3,
- [8388833]=3,
- [8388834]=3,
- [8388835]=3,
- [8388836]=3,
- [8388837]=3,
- [8388838]=3,
- [8388839]=3,
- [8388840]=3,
- [8388841]=3,
- [8388842]=3,
- [8388843]=3,
- [8388844]=3,
- [8388845]=3,
- [8388846]=3,
- [8388847]=3,
- [8388848]=3,
- [8388849]=3,
- [8388850]=3,
- [8388851]=3,
- [8388852]=3,
- [8388853]=3,
- [8388854]=3,
- [8388855]=3,
- [8388856]=3,
- [8388857]=3,
- [8388858]=3,
- [8388859]=3,
- [8388860]=3,
- [8388861]=3,
- [8388862]=3,
- [8388863]=3,
- [8396820]=0,
- [8396821]=0,
- [8396824]=1,
- [8396825]=2,
- [8396828]=1,
- [8396829]=2,
- [8396838]=0,
- [8396850]=2,
- [8396851]=2,
- [8396860]=2,
- [8396871]=2,
- [8396872]=2,
- [8396873]=2,
- [8396972]=1,
- [8397090]=2,
- [8398080]=0,
- [8398081]=0,
- [8398082]=0,
- [8398083]=0,
- [8398084]=0,
- [8398085]=0,
- [8398086]=0,
- [8398087]=0,
- [8398088]=0,
- [8398089]=0,
- [8398090]=0,
- [8398091]=0,
- [8398092]=0,
- [8398093]=0,
- [8398094]=0,
- [8398095]=0,
- [8398096]=0,
- [8398097]=0,
- [8398098]=0,
- [8398099]=0,
- [8398100]=0,
- [8398101]=0,
- [8398102]=0,
- [8398103]=0,
- [8398104]=0,
- [8398105]=0,
- [8398106]=0,
- [8398107]=0,
- [8398108]=0,
- [8398109]=0,
- [8398110]=0,
- [8398111]=0,
- [8398112]=0,
- [8398113]=0,
- [8398114]=0,
- [8398115]=0,
- [8398116]=0,
- [8398117]=0,
- [8398118]=0,
- [8398119]=0,
- [8398120]=0,
- [8398121]=0,
- [8398122]=0,
- [8398123]=0,
- [8398124]=0,
- [8398125]=0,
- [8398126]=0,
- [8398127]=0,
- [8398128]=0,
- [8398129]=0,
- [8398130]=0,
- [8398131]=0,
- [8398132]=0,
- [8398133]=0,
- [8398134]=0,
- [8398135]=0,
- [8398136]=0,
- [8398137]=0,
- [8398138]=0,
- [8398139]=0,
- [8398140]=0,
- [8398141]=0,
- [8398142]=0,
- [8398143]=0,
- [8398144]=0,
- [8398145]=0,
- [8398146]=0,
- [8398147]=0,
- [8398148]=0,
- [8398149]=0,
- [8398150]=0,
- [8398151]=0,
- [8398152]=0,
- [8398153]=0,
- [8398154]=0,
- [8398155]=0,
- [8398156]=0,
- [8398157]=0,
- [8398158]=0,
- [8398159]=0,
- [8398160]=0,
- [8398161]=0,
- [8398162]=0,
- [8398163]=0,
- [8398164]=0,
- [8398165]=0,
- [8398166]=0,
- [8398167]=0,
- [8398168]=0,
- [8398169]=0,
- [8398170]=0,
- [8398171]=0,
- [8398172]=0,
- [8398173]=0,
- [8398174]=0,
- [8398175]=0,
- [8398176]=0,
- [8398177]=0,
- [8398178]=0,
- [8398179]=0,
- [8398180]=0,
- [8398181]=0,
- [8398182]=0,
- [8398183]=0,
- [8398184]=0,
- [8398185]=0,
- [8398186]=0,
- [8398187]=0,
- [8398188]=0,
- [8398189]=0,
- [8398190]=0,
- [8398191]=0,
- [8398192]=0,
- [8398193]=0,
- [8398194]=0,
- [8398195]=0,
- [8398196]=0,
- [8398197]=0,
- [8398198]=0,
- [8398199]=0,
- [8398200]=0,
- [8398201]=0,
- [8398202]=0,
- [8398203]=0,
- [8398204]=0,
- [8398205]=0,
- [8398206]=0,
- [8398207]=0,
- [8399237]=1,
- [8399238]=2,
- [8400897]=2,
- [8400898]=2,
- [8400904]=1,
- [8400905]=2,
- [8400906]=1,
- [8400907]=2,
- [8400908]=1,
- [8400909]=2,
- [8400910]=1,
- [8400911]=2,
- [8400912]=1,
- [8400913]=2,
- [8400916]=1,
- [8400917]=2,
- [8400918]=1,
- [8400919]=2,
- [8400920]=1,
- [8400921]=2,
- [8400924]=0,
- [8400925]=1,
- [8400927]=2,
- [8453896]=1,
- [8453897]=2,
- [8453900]=2,
- [8453902]=2,
- [8453915]=2,
- [8453919]=2,
- [8453947]=1,
- [8453949]=2,
- [8453979]=1,
- [8453981]=2,
- [8453982]=0,
- [8453983]=1,
- [8453984]=2,
- [8453985]=2,
- [8453986]=1,
- [8453987]=2,
- [8453988]=2,
- [8454117]=0,
-}
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-latex.sty b/Master/texmf-dist/tex/luatex/luatexja/ltj-latex.sty
index 8af066eee6e..ca774fe8cdc 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltj-latex.sty
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-latex.sty
@@ -83,6 +83,7 @@
\ltj@pkgpatch@im{unicode-math}
\ltj@pkgpatch@im{siunitx}
\ltj@pkgpatch@im{microtype}
+\ltj@pkgpatch@im{everyshi}
\RequirePackage{lltjp-geometry}
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-lineskip.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-lineskip.lua
index f5c439e559d..1fc6f7b2d37 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltj-lineskip.lua
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-lineskip.lua
@@ -1,15 +1,15 @@
--
-- ltj-lineskip.lua
--
-luatexja.load_module('base'); local ltjb = luatexja.base
-luatexja.load_module('direction'); local ltjd = luatexja.direction
+luatexja.load_module 'base'; local ltjb = luatexja.base
+luatexja.load_module 'direction'; local ltjd = luatexja.direction
luatexja.lineskip = luatexja.lineskip or {}
local to_direct = node.direct.todirect
local ltjl = luatexja.lineskip
-local id_glue = node.id('glue')
-local id_penalty = node.id('penalty')
-local id_hlist = node.id('hlist')
+local id_glue = node.id 'glue'
+local id_penalty = node.id 'penalty'
+local id_hlist = node.id 'hlist'
local setfield = node.direct.setfield
local getfield = node.direct.getfield
local getlist = node.direct.getlist
@@ -46,71 +46,66 @@ function ltjl.setting(profiler, skip_method)
end
do
- local traverse_id = node.direct.traverse_id
- local function adjust_glue(nh)
- local h = to_direct(nh)
- local bw = tex.baselineskip.width
- for x in traverse_id(id_glue, h) do
- local xs = getsubtype(x)
- if (xs==1) or (xs==2) then
- local p, n = node_prev(x), node_next(x)
- if p then
- local pid = getid(p)
- while (id_glue<=pid) and (pid<=id_penalty) and node_prev(p) do
- p = node_prev(p); pid = getid(p)
- end
- if pid==id_hlist and getid(n)==id_hlist then
- local normal = bw - getfield(p, 'depth') - getfield(n, 'height')
- local lmin, adj = ltj_profiler(p, n, false, bw)
- ltj_skip(lmin or normal, x, adj, normal, bw)
- end
+local traverse_id = node.direct.traverse_id
+local function adjust_glue(nh)
+ local h = to_direct(nh)
+ local bw = tex.baselineskip.width
+ for x in traverse_id(id_glue, h) do
+ local xs = getsubtype(x)
+ if (xs==1) or (xs==2) then
+ local p, n = node_prev(x), node_next(x)
+ if p then
+ local pid = getid(p)
+ while (id_glue<=pid) and (pid<=id_penalty) and node_prev(p) do
+ p = node_prev(p); pid = getid(p)
+ end
+ if pid==id_hlist and getid(n)==id_hlist then
+ local normal = bw - getfield(p, 'depth') - getfield(n, 'height')
+ local lmin, adj = ltj_profiler(p, n, false, bw)
+ ltj_skip(lmin or normal, x, adj, normal, bw)
end
end
- end
- return true
+ end
end
- ltjb.add_to_callback('post_linebreak_filter',
- adjust_glue, 'ltj.lineskip', 10000)
+ return true
+end
+ltjb.add_to_callback('post_linebreak_filter', adjust_glue, 'ltj.lineskip', 10000)
end
do
- local p_dummy = ltjl.p_dummy
- local make_dir_whatsit = luatexja.direction.make_dir_whatsit
- local get_dir_count = luatexja.direction.get_dir_count
- local node_write = node.direct.write
+local p_dummy = ltjl.p_dummy
+local make_dir_whatsit = luatexja.direction.make_dir_whatsit
+local get_dir_count = luatexja.direction.get_dir_count
+local node_write = node.direct.write
- local function dir_adjust_append_vlist(b, loc, prev, mirrored)
- local old_b = to_direct(b)
- local new_b = loc=='box' and
- make_dir_whatsit(old_b, old_b, get_dir_count(), 'append_vlist') or old_b
- if prev > -65536000 then
- local bw = tex.baselineskip.width
- local normal = bw - prev
- - getfield(new_b, mirrored and 'depth' or 'height')
- local lmin, adj = nil, 0
- local tail = to_direct(tex.nest[tex.nest.ptr].tail)
- if p_dummy~=ltj_profiler then
- while tail and (id_glue<=getid(tail)) and (getid(tail)<=id_penalty) do
- tail = node_prev(tail)
+local function dir_adjust_append_vlist(b, loc, prev, mirrored)
+ local old_b = to_direct(b)
+ local new_b = loc=='box' and
+ make_dir_whatsit(old_b, old_b, get_dir_count(), 'append_vlist') or old_b
+ if prev > -65536000 then
+ local bw = tex.baselineskip.width
+ local normal = bw - prev - getfield(new_b, mirrored and 'depth' or 'height')
+ local lmin, adj = nil, 0
+ local tail = to_direct(tex.nest[tex.nest.ptr].tail)
+ if p_dummy~=ltj_profiler then
+ while tail and (id_glue<=getid(tail)) and (getid(tail)<=id_penalty) do
+ tail = node_prev(tail)
+ end
+ end
+ if tail then
+ if getid(tail)==id_hlist and getid(new_b)==id_hlist then
+ if getfield(tail, 'depth')==prev then
+ lmin, adj = ltj_profiler(tail, new_b, mirrored, bw)
end
end
- if tail then
- if getid(tail)==id_hlist and getid(new_b)==id_hlist then
- if getfield(tail, 'depth')==prev then
- lmin, adj = ltj_profiler(tail, new_b, mirrored, bw)
- end
- end
- end
- local g = node_new(id_glue)
- ltj_skip(lmin or normal, g, adj, normal, bw, loc)
- node_write(g)
end
- node_write(new_b)
- tex.prevdepth = getfield(new_b, mirrored and 'height' or 'depth')
- return nil -- do nothing on tex side
+ local g = node_new(id_glue)
+ ltj_skip(lmin or normal, g, adj, normal, bw, loc); node_write(g)
end
- ltjb.add_to_callback('append_to_vlist_filter',
- dir_adjust_append_vlist,
- 'ltj.lineskip', 10000)
+ node_write(new_b)
+ tex.prevdepth = getfield(new_b, mirrored and 'height' or 'depth')
+ return nil -- do nothing on tex side
+end
+ltjb.add_to_callback('append_to_vlist_filter', dir_adjust_append_vlist, 'ltj.lineskip', 10000)
end
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-lotf_aux.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-lotf_aux.lua
index 2efafc06ed1..bd3a602e648 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltj-lotf_aux.lua
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-lotf_aux.lua
@@ -102,8 +102,11 @@ local function get_vmet_table(tfmdata, dest)
if v.vheight~=default_vheight then t_vheight[i] = v.vheight / units end
end
end
- setmetatable(t_vheight, {__index = function () return default_vheight / units end } )
- setmetatable(t_vorigin, {__index = function () return ascender / units end } )
+ local vhd, vod = default_vheight / units, ascender/units
+ t_vheight.default = vhd
+ t_vorigin.default = vod
+ setmetatable(t_vheight, {__index = function () return vhd end } )
+ setmetatable(t_vorigin, {__index = function () return vod end } )
dest = dest or {}
dest.ind_to_uni = t_ind_to_uni
dest.vorigin = t_vorigin -- designed size = 1.0
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-math.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-math.lua
index b6ef1a9dd37..2a7c0444c74 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltj-math.lua
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-math.lua
@@ -2,12 +2,12 @@
-- ltj-math.lua
--
-luatexja.load_module('base'); local ltjb = luatexja.base
-luatexja.load_module('direction'); local ltjd = luatexja.direction
-luatexja.load_module('charrange'); local ltjc = luatexja.charrange
-luatexja.load_module('jfont'); local ltjf = luatexja.jfont
-luatexja.load_module('stack'); local ltjs = luatexja.stack
-luatexja.load_module('setwidth'); local ltjw = luatexja.setwidth
+luatexja.load_module 'base'; local ltjb = luatexja.base
+luatexja.load_module 'direction'; local ltjd = luatexja.direction
+luatexja.load_module 'charrange'; local ltjc = luatexja.charrange
+luatexja.load_module 'jfont'; local ltjf = luatexja.jfont
+luatexja.load_module 'stack'; local ltjs = luatexja.stack
+luatexja.load_module 'setwidth'; local ltjw = luatexja.setwidth
local setfield = node.direct.setfield
local getfield = node.direct.getfield
@@ -36,20 +36,20 @@ local attr_curjfnt = luatexbase.attributes['ltj@curjfnt']
local attr_jfam = luatexbase.attributes['jfam']
local attr_yablshift = luatexbase.attributes['ltj@yablshift']
-local id_glyph = node.id('glyph')
-local id_hlist = node.id('hlist')
-local id_vlist = node.id('vlist')
-local id_mchar = node.id('math_char')
-local id_sub_box = node.id('sub_box')
-local id_radical = node.id('radical')
-local id_choice = node.id('choice')
-local id_accent = node.id('accent')
-local id_style = node.id('style')
-local id_frac = node.id('fraction')
-local id_simple = node.id('noad')
-local id_sub_mlist = node.id('sub_mlist')
-local id_whatsit = node.id('whatsit')
-local sid_user = node.subtype('user_defined')
+local id_glyph = node.id 'glyph'
+local id_hlist = node.id 'hlist'
+local id_vlist = node.id 'vlist'
+local id_mchar = node.id 'math_char'
+local id_sub_box = node.id 'sub_box'
+local id_radical = node.id 'radical'
+local id_choice = node.id 'choice'
+local id_accent = node.id 'accent'
+local id_style = node.id 'style'
+local id_frac = node.id 'fraction'
+local id_simple = node.id 'noad'
+local id_sub_mlist = node.id 'sub_mlist'
+local id_whatsit = node.id 'whatsit'
+local sid_user = node.subtype 'user_defined'
local DIR = luatexja.userid_table.DIR
local dir_node_auto = luatexja.dir_table.dir_node_auto
@@ -66,56 +66,54 @@ local list_dir
-- vcenter noad は軸に揃えるため,欧文ベースライン補正がかかる
local function conv_vcenter(sb)
- local h = getfield(sb, 'head');local hd = getlist(h)
- if getid(hd)==id_whatsit and
- getsubtype(hd)==sid_user and getfield(hd, 'user_id')==DIR then
+ local h = getfield(sb, 'head'); local hd = getlist(h)
+ if getid(hd)==id_whatsit and getsubtype(hd)==sid_user
+ and getfield(hd, 'user_id')==DIR then
local d = node_next(hd)
if getid(d)==id_vlist and has_attr(d, attr_dir)>=dir_node_auto then
- node_free(hd); setfield(h, 'head', nil); node_free(h)
- setfield(sb, 'head', d); set_attr(d, attr_icflag, 0)
+ node_free(hd); setfield(h, 'head', nil); node_free(h)
+ setfield(sb, 'head', d); set_attr(d, attr_icflag, 0)
end
end
return sb
end
-local conv_jchar_to_hbox_A
-
+local cjhh_A
-- sty : 0 (display or text), 1 (script), >=2 (scriptscript)
local function conv_jchar_to_hbox(head, sty)
for p in node_traverse(head) do
local pid = getid(p)
if pid == id_simple or pid == id_accent then
- if getsubtype(p)==12 then
- conv_vcenter(getfield(p, 'nucleus'))
- else
- setfield(p, 'nucleus', conv_jchar_to_hbox_A(getfield(p, 'nucleus'), sty))
- end
- setfield(p, 'sub', conv_jchar_to_hbox_A(getfield(p, 'sub'), sty+1))
- setfield(p, 'sup', conv_jchar_to_hbox_A(getfield(p, 'sup'), sty+1))
+ if getsubtype(p)==12 then
+ conv_vcenter(getfield(p, 'nucleus'))
+ else
+ setfield(p, 'nucleus', cjh_A(getfield(p, 'nucleus'), sty))
+ end
+ setfield(p, 'sub', cjh_A(getfield(p, 'sub'), sty+1))
+ setfield(p, 'sup', cjh_A(getfield(p, 'sup'), sty+1))
elseif pid == id_choice then
- setfield(p, 'display', conv_jchar_to_hbox_A(getfield(p, 'display'), 0))
- setfield(p, 'text', conv_jchar_to_hbox_A(getfield(p, 'text'), 0))
- setfield(p, 'script', conv_jchar_to_hbox_A(getfield(p, 'script'), 1))
- setfield(p, 'scriptscript', conv_jchar_to_hbox_A(getfield(p, 'scriptscript'), 2))
+ setfield(p, 'display', cjh_A(getfield(p, 'display'), 0))
+ setfield(p, 'text', cjh_A(getfield(p, 'text'), 0))
+ setfield(p, 'script', cjh_A(getfield(p, 'script'), 1))
+ setfield(p, 'scriptscript', cjh_A(getfield(p, 'scriptscript'), 2))
elseif pid == id_frac then
- setfield(p, 'num', conv_jchar_to_hbox_A(getfield(p, 'num'), sty+1))
- setfield(p, 'denom', conv_jchar_to_hbox_A(getfield(p, 'denom'), sty+1))
+ setfield(p, 'num', cjh_A(getfield(p, 'num'), sty+1))
+ setfield(p, 'denom', cjh_A(getfield(p, 'denom'), sty+1))
elseif pid == id_radical then
- setfield(p, 'nucleus', conv_jchar_to_hbox_A(getfield(p, 'nucleus'), sty))
- setfield(p, 'sub', conv_jchar_to_hbox_A(getfield(p, 'sub'), sty+1))
- setfield(p, 'sup', conv_jchar_to_hbox_A(getfield(p, 'sup'), sty+1))
- if getfield(p, 'degree') then
- setfield(p, 'degree', conv_jchar_to_hbox_A(getfield(p, 'degree'), sty + 1))
- end
+ setfield(p, 'nucleus', cjh_A(getfield(p, 'nucleus'), sty))
+ setfield(p, 'sub', cjh_A(getfield(p, 'sub'), sty+1))
+ setfield(p, 'sup', cjh_A(getfield(p, 'sup'), sty+1))
+ if getfield(p, 'degree') then
+ setfield(p, 'degree', cjh_A(getfield(p, 'degree'), sty + 1))
+ end
elseif pid == id_style then
- local ps = getfield(p, 'style')
- if ps == "display'" or ps == 'display'
- or ps == "text'" or ps == 'text' then
- sty = 0
- elseif ps == "script'" or ps == 'script' then
- sty = 1
- else sty = 2
- end
+ local ps = getfield(p, 'style')
+ if ps == "display'" or ps == 'display' or ps == "text'" or ps == 'text' then
+ sty = 0
+ elseif ps == "script'" or ps == 'script' then
+ sty = 1
+ else sty = 2
+ end
end
end
return head
@@ -127,8 +125,7 @@ local MJSS = luatexja.stack_table_index.MJSS
local capsule_glyph_math = ltjw.capsule_glyph_math
local is_ucs_in_japanese_char = ltjc.is_ucs_in_japanese_char_direct
-conv_jchar_to_hbox_A =
-function (p, sty)
+cjh_A = function (p, sty)
if not p then return nil
else
local pid = getid(p)
@@ -137,29 +134,24 @@ function (p, sty)
setfield(p, 'head', conv_jchar_to_hbox(getfield(p, 'head'), sty))
end
elseif pid == id_mchar then
- local fam = has_attr(p, attr_jfam) or -1
- local pc = getchar(p)
+ local pc, fam = getchar (p), has_attr(p, attr_jfam) or -1
if (not is_math_letters[pc]) and is_ucs_in_japanese_char(p) and fam>=0 then
local f = ltjs.get_stack_table(MJT + 0x100 * sty + fam, -1, tex_getcount('ltj@@stack'))
if f ~= -1 then
local q = node_new(id_sub_box)
local r = node_new(id_glyph); setfield(r, 'next', nil)
setfield(r, 'char', pc); setfield(r, 'font', f); setfield(r, 'subtype', 256)
- local k = has_attr(r,attr_ykblshift) or 0
- set_attr(r, attr_ykblshift, 0)
+ local k = has_attr(r,attr_ykblshift) or 0; set_attr(r, attr_ykblshift, 0)
-- ltj-setwidth 内で実際の位置補正はおこなうので,補正量を退避
local met = ltjf_font_metric_table[f]
r = capsule_glyph_math(r, met, met.char_type[ltjf_find_char_class(pc, met)]);
- setfield(q, 'head', r); node_free(p); p=q;
- set_attr(r, attr_yablshift, k)
+ setfield(q, 'head', r); node_free(p); p=q; set_attr(r, attr_yablshift, k)
end
end
elseif pid == id_sub_box and getfield(p, 'head') then
-- \hbox で直に与えられた内容は上下位置を補正する必要はない
- local h = getfield(p, 'head')
- h = ltjd_make_dir_whatsit(h, h, list_dir, 'math')
- setfield(p, 'head', h)
- set_attr(h, attr_icflag, PROCESSED)
+ local h = getfield(p, 'head'); h = ltjd_make_dir_whatsit(h, h, list_dir, 'math')
+ setfield(p, 'head', h); set_attr(h, attr_icflag, PROCESSED)
end
end
return p
@@ -168,8 +160,7 @@ end
do
local function mlist_callback_ltja(n)
local n = to_direct(n); list_dir = ltjd_get_dir_count()
- if getid(n)==id_whatsit and getsubtype(n)==sid_user and
- getfield(n, 'user_id') == DIR then
+ if getid(n)==id_whatsit and getsubtype(n)==sid_user and getfield(n, 'user_id') == DIR then
local old_n = n; n = node_remove(n, n)
node_free(old_n); if not n then return nil end
end
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-otf.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-otf.lua
index f0088944c2c..56c0154e34c 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltj-otf.lua
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-otf.lua
@@ -1,20 +1,20 @@
--
-- ltj-otf.lua
--
-require('unicode')
-require('lualibs')
+require 'unicode'
+require 'lualibs'
-luatexja.load_module('base'); local ltjb = luatexja.base
-luatexja.load_module('jfont'); local ltjf = luatexja.jfont
-luatexja.load_module('rmlgbm'); local ltjr = luatexja.rmlgbm
-luatexja.load_module('charrange'); local ltjc = luatexja.charrange
-luatexja.load_module('direction'); local ltjd = luatexja.direction
-luatexja.load_module('stack'); local ltjs = luatexja.stack
-luatexja.load_module('lotf_aux'); local ltju = luatexja.lotf_aux
+luatexja.load_module 'base'; local ltjb = luatexja.base
+luatexja.load_module 'jfont'; local ltjf = luatexja.jfont
+luatexja.load_module 'rmlgbm'; local ltjr = luatexja.rmlgbm
+luatexja.load_module 'charrange'; local ltjc = luatexja.charrange
+luatexja.load_module 'direction'; local ltjd = luatexja.direction
+luatexja.load_module 'stack'; local ltjs = luatexja.stack
+luatexja.load_module 'lotf_aux'; local ltju = luatexja.lotf_aux
-local id_glyph = node.id('glyph')
-local id_whatsit = node.id('whatsit')
-local sid_user = node.subtype('user_defined')
+local id_glyph = node.id 'glyph'
+local id_whatsit = node.id 'whatsit'
+local sid_user = node.subtype 'user_defined'
local setfield = node.direct.setfield
local getfield = node.direct.getfield
@@ -22,10 +22,8 @@ local getid = node.direct.getid
local getfont = node.direct.getfont
local getchar = node.direct.getchar
local getsubtype = node.direct.getsubtype
-
local to_node = node.direct.tonode
local to_direct = node.direct.todirect
-
local node_new = node.direct.new
local node_remove = node.direct.remove
local node_next = node.direct.getnext
@@ -37,7 +35,6 @@ local node_insert_after = node.direct.insert_after
local node_write = node.direct.write
local node_traverse_id = node.direct.traverse_id
-
local attr_curjfnt = luatexbase.attributes['ltj@curjfnt']
local attr_curtfnt = luatexbase.attributes['ltj@curtfnt']
local attr_yablshift = luatexbase.attributes['ltj@yablshift']
@@ -59,9 +56,9 @@ luatexja.userid_table.OTF = luatexbase.newuserwhatsitid('char_by_cid', 'luatexj
local OTF = luatexja.userid_table.OTF
local tex_get_attr = tex.getattribute
-local cache_var = 2
-local cache_outdate_fn = function (t) return t.version~=cache_ver end
-local ivd_aj1 = ltjb.load_cache('ltj-ivd_aj1',cache_outdate_fn)
+local cache_ver = 3
+local ivd_aj1 = ltjb.load_cache('ltj-ivd_aj1',
+ function (t) return t.version~=cache_ver end)
if not ivd_aj1 then -- make cache
ivd_aj1 = require('ltj-ivd_aj1.lua')
ltjb.save_cache_luc('ltj-ivd_aj1', ivd_aj1)
@@ -73,13 +70,12 @@ local function get_ucs_from_rmlgbm(c)
or ltjr_cidfont_data["Adobe-Japan1"].resources.unicodes["Japan1." .. tostring(c)])
or 0
if v>=0x200000 then -- table
- local curjfnt = tex_get_attr((ltjd_get_dir_count()==dir_tate)
- and attr_curtfnt or attr_curjfnt)
+ local curjfnt = tex_get_attr(
+ (ltjd_get_dir_count()==dir_tate) and attr_curtfnt or attr_curjfnt)
local tfmdata = font_getfont(curjfnt)
if tfmdata and tfmdata.resources then
local base, ivs = v % 0x200000, 0xE00FF + math.floor(v/0x200000)
- curjfnt = tfmdata.resources.variants
- curjfnt = curjfnt and curjfnt[ivs]
+ curjfnt = tfmdata.resources.variants; curjfnt = curjfnt and curjfnt[ivs]
return curjfnt and curjfnt[base] or base
else return base
end
@@ -110,7 +106,7 @@ local function get_ucs_from_rmlgbm(c)
-- CID が縦組用字形だった場合
return ltju.replace_vert_variant(
tex_get_attr((ltjd_get_dir_count()==dir_tate) and attr_curtfnt or attr_curjfnt),
- r)
+ r)
end
return r
end
@@ -120,10 +116,8 @@ end
-- This whatsit node will be extracted to a glyph_node
local function append_jglyph(char)
local p = node_new(id_whatsit,sid_user)
- setfield(p, 'user_id', OTF)
- setfield(p, 'type', 100)
- setfield(p, 'value', char)
- node_write(p)
+ setfield(p, 'user_id', OTF); setfield(p, 'type', 100)
+ setfield(p, 'value', char); node_write(p)
end
local utf
@@ -132,7 +126,7 @@ do
if ltjd_get_dir_count()==dir_tate then
ucs = ltju.replace_vert_variant(
tex_get_attr((ltjd_get_dir_count()==dir_tate) and attr_curtfnt or attr_curjfnt),
- ucs)
+ ucs)
end
return append_jglyph(ucs)
end
@@ -140,21 +134,19 @@ end
local cid
do
+ local ord = {
+ ['Japan1']=true, ['GB1']=true, ['CNS1']=true, ['Korea1']=true, ['KR']=true
+ }
cid = function (key)
if key==0 then return append_jglyph(0) end
- local curjfnt = tex_get_attr((ltjd_get_dir_count()==dir_tate)
- and attr_curtfnt or attr_curjfnt)
+ local curjfnt = tex_get_attr(
+ (ltjd_get_dir_count()==dir_tate) and attr_curtfnt or attr_curjfnt)
local cidinfo = ltju.get_cidinfo(curjfnt)
- if type(cidinfo)~="table" or
- cidinfo.ordering ~= "Japan1" and
- cidinfo.ordering ~= "GB1" and
- cidinfo.ordering ~= "CNS1" and
- cidinfo.ordering ~= "Korea1" and
- cidinfo.ordering ~= "KR" then
+ if type(cidinfo)~="table" or not ord[cidinfo.ordering] then
return append_jglyph(get_ucs_from_rmlgbm(key))
else
- local char = ltjf_font_extra_info[curjfnt].ind_to_uni[key] or 0
- return append_jglyph(char)
+ local char = ltjf_font_extra_info[curjfnt].ind_to_uni[key] or 0
+ return append_jglyph(char)
end
end
end
@@ -171,17 +163,12 @@ local function extract(head)
if getsubtype(p)==sid_user then
local puid = getfield(p, 'user_id')
if puid==OTF then
- --if puid==OTF or puid==VSR then
local g = node_new(id_glyph)
setfield(g, 'subtype', 0)
- setfield(g, 'char', getfield(p, 'value'))
- local v = has_attr(p, attr_curfnt); setfield(g, 'font',v)
- --if puid==OTF then
- setfield(g, 'lang', lang_ja)
- set_attr(g, attr_kblshift, has_attr(p, attr_kblshift))
- --else
- -- set_attr(g, attr_ablshift, has_attr(p, attr_ablshift))
- --end
+ setfield(g, 'char', getfield(p, 'value'))
+ local v = has_attr(p, attr_curfnt); setfield(g, 'font', v)
+ setfield(g, 'lang', lang_ja)
+ set_attr(g, attr_kblshift, has_attr(p, attr_kblshift))
head = node_insert_after(head, p, g)
head = node_remove(head, p)
node_free(p); p = g
@@ -208,20 +195,20 @@ local function ind_to_uni(fmtable, fn)
local t = ltjf_font_extra_info[fn]; t = t and t.ind_to_uni
if t and cid.ordering == "Japan1" then
for i, v in pairs(fmtable.chars) do
- local j = string.match(i, "^AJ1%-([0-9]*)")
- if j then
- j = t[i]
- if j then
- fmtable.cid_char_type = fmtable.cid_char_type or {}
- fmtable.cid_char_type[j] = v
- end
- end
+ local j = string.match(i, "^AJ1%-([0-9]*)")
+ if j then
+ j = t[i]
+ if j then
+ fmtable.cid_char_type = fmtable.cid_char_type or {}
+ fmtable.cid_char_type[j] = v
+ end
+ end
end
end
return fmtable
end
luatexbase.add_to_callback("luatexja.define_jfont",
- ind_to_uni, "ltj.otf.define_jfont", 1)
+ ind_to_uni, "ltj.otf.define_jfont", 1)
-- 既に読み込まれているフォントに対しても,同じことをやらないといけない
for fn, v in pairs(ltjf_font_metric_table) do
ltjf_font_metric_table[fn] = ind_to_uni(v, fn)
@@ -236,19 +223,18 @@ local function cid_set_char_class(arg, fmtable, char)
end
end
luatexbase.add_to_callback("luatexja.find_char_class",
- cid_set_char_class, "ltj.otf.find_char_class", 1)
+ cid_set_char_class, "ltj.otf.find_char_class", 1)
--IVS
local function enable_ivs()
ltjb.package_warning('luatexja-otf',
- 'luatexja.otf.enable_ivs() has now no effect.')
+ 'luatexja.otf.enable_ivs() has now no effect.')
end
local disable_ivs = enable_ivs
luatexja.otf = {
append_jglyph = append_jglyph,
- enable_ivs = enable_ivs, -- 隠し機能: IVS
- disable_ivs = disable_ivs, -- 隠し機能: IVS
+ enable_ivs = enable_ivs, disable_ivs = disable_ivs,
cid = cid, utf = utf,
}
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-pretreat.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-pretreat.lua
index 695749ddf6d..073cc1ee398 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltj-pretreat.lua
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-pretreat.lua
@@ -2,11 +2,11 @@
-- ltj-pretreat.lua
--
-luatexja.load_module('base'); local ltjb = luatexja.base
-luatexja.load_module('charrange'); local ltjc = luatexja.charrange
-luatexja.load_module('stack'); local ltjs = luatexja.stack
-luatexja.load_module('jfont'); local ltjf = luatexja.jfont
-luatexja.load_module('direction'); local ltjd = luatexja.direction
+luatexja.load_module 'base'; local ltjb = luatexja.base
+luatexja.load_module 'charrange'; local ltjc = luatexja.charrange
+luatexja.load_module 'stack'; local ltjs = luatexja.stack
+luatexja.load_module 'jfont'; local ltjf = luatexja.jfont
+luatexja.load_module 'direction'; local ltjd = luatexja.direction
local to_node = node.direct.tonode
local to_direct = node.direct.todirect
@@ -67,25 +67,23 @@ do
local suppress_hyphenate_ja_aux = {
[id_math] = function(p) return node_next(node_end_of_math(node_next(p))) end,
[id_whatsit] = function(p)
- if getsubtype(p)==sid_user then
- local uid = getfield(p, 'user_id')
- if uid==STCK then
- wt[#wt+1] = p; node_remove(head, p)
- elseif uid==DIR then
- if has_attr(p, attr_icflag)<PROCESSED_BEGIN_FLAG then
- ltjs.list_dir = has_attr(p, attr_dir)
- else -- こっちのケースは通常使用では起こらない
- wtd[#wtd+1] = p; node_remove(head, p)
- end
- end
- end
- return node_next(p)
+ if getsubtype(p)==sid_user then
+ local uid = getfield(p, 'user_id')
+ if uid==STCK then
+ wt[#wt+1] = p; node_remove(head, p)
+ elseif uid==DIR then
+ if has_attr(p, attr_icflag)<PROCESSED_BEGIN_FLAG then
+ ltjs.list_dir = has_attr(p, attr_dir)
+ else -- こっちのケースは通常使用では起こらない
+ wtd[#wtd+1] = p; node_remove(head, p)
+ end
+ end
+ end
+ return node_next(p)
end,
}
setmetatable(suppress_hyphenate_ja_aux,
- {
- __index = function() return node_next end,
- })
+ { __index = function() return node_next end, })
local id_boundary = node.id('boundary')
local node_new, insert_before = node.direct.new, node.direct.insert_before
local setsubtype = node.direct.setsubtype or function(n,l) setfield(n,'subtype',l) end
@@ -95,37 +93,37 @@ do
for i = 1,#wt do wt[i]=nil end
for i = 1,#wtd do wtd[i]=nil end
for i,_ in pairs(ltjs_orig_char_table) do
- ltjs_orig_char_table[i] = nil
+ ltjs_orig_char_table[i] = nil
end
ltjs.list_dir=ltjd_get_dir_count()
do
- local p = head
- while p do
- local pid, prev_chartype = getid(p), 0
- -- prev_chartype: 0: not char 1: ALchar 2: JAchar
- while pid==id_glyph do
- local pc = getchar(p)
- if has_attr(p, attr_icflag, 0) and is_ucs_in_japanese_char(p, pc) then
- if prev_chartype==1 then
+ local p = head
+ while p do
+ local pid, prev_chartype = getid(p), 0
+ -- prev_chartype: 0: not char 1: ALchar 2: JAchar
+ while pid==id_glyph do
+ local pc = getchar(p)
+ if has_attr(p, attr_icflag, 0) and is_ucs_in_japanese_char(p, pc) then
+ if prev_chartype==1 then
local b = node_new(id_whatsit,sid_user);
- setfield(b, 'type', 100); setfield(b, 'user_id', JA_AL_BDD);
- insert_before(head, p, b)
- end
+ setfield(b, 'type', 100); setfield(b, 'user_id', JA_AL_BDD);
+ insert_before(head, p, b)
+ end
local pf = has_attr(p, attr_curjfnt)
pf = (pf and pf>0 and pf) or getfont(p)
- setfont(p, ltjf_replace_altfont(pf, pc))
- setlang(p, lang_ja)
- ltjs_orig_char_table[p], prev_chartype = pc, 2
+ setfont(p, ltjf_replace_altfont(pf, pc))
+ setlang(p, lang_ja)
+ ltjs_orig_char_table[p], prev_chartype = pc, 2
elseif prev_chartype==2 then
- local b = node_new(id_whatsit,sid_user);
- setfield(b, 'type', 100); setfield(b, 'user_id', JA_AL_BDD);
- insert_before(head, p, b); prev_chartype = 1
+ local b = node_new(id_whatsit,sid_user);
+ setfield(b, 'type', 100); setfield(b, 'user_id', JA_AL_BDD);
+ insert_before(head, p, b); prev_chartype = 1
else prev_chartype = 1
- end
- p = node_next(p); pid = getid(p)
- end
- p = (suppress_hyphenate_ja_aux[pid])(p)
- end
+ end
+ p = node_next(p); pid = getid(p)
+ end
+ p = (suppress_hyphenate_ja_aux[pid])(p)
+ end
end
stop_time_measure('ltj_hyphenate'); start_time_measure('tex_hyphenate')
lang.hyphenate(h, nil)
@@ -133,10 +131,7 @@ do
return h
end
- ltjb.add_to_callback('hyphenate',
- function (head,tail)
- return suppress_hyphenate_ja(head)
- end,'ltj.hyphenate')
+ ltjb.add_to_callback('hyphenate', suppress_hyphenate_ja, 'ltj.hyphenate')
end
-- mode: true iff this function is called from hpack_filter
@@ -153,20 +148,17 @@ local function set_box_stack_level(head, mode)
for _,p in pairs(wt) do node_free(p) end
end
ltjs_report_stack_level(tex_getcount('ltj@@stack') + box_set)
- for _,p in pairs(wtd) do
- node_free(p)
- end
+ for _,p in pairs(wtd) do node_free(p) end
if ltjs.list_dir == dir_tate then
for p in node.direct.traverse_id(id_glyph,to_direct(head)) do
if has_attr(p, attr_icflag, 0) and getlang(p)==lang_ja then
- local nf = ltjf_replace_altfont( has_attr(p, attr_curtfnt) or getfont(p) , ltjs_orig_char_table[p])
- setfont(p, nf)
- if ltjf_font_metric_table[nf].vert_activated then
- local pc = getchar(p)
- pc = ltjf_font_metric_table[nf].vform[pc]
+ local nf = ltjf_replace_altfont( has_attr(p, attr_curtfnt) or getfont(p) , ltjs_orig_char_table[p])
+ setfont(p, nf)
+ if ltjf_font_metric_table[nf].vert_activated then
+ local pc = getchar(p); pc = ltjf_font_metric_table[nf].vform[pc]
if pc then setchar(p, pc) end
- end
- end
+ end
+ end
end
end
return head
@@ -176,11 +168,11 @@ end
ltjb.add_to_callback('hpack_filter',
function (head)
return set_box_stack_level(head, true)
- end,'ltj.set_stack_level',1)
+ end, 'ltj.set_stack_level', 1)
ltjb.add_to_callback('pre_linebreak_filter',
- function (head)
- return set_box_stack_level(head, false)
- end,'ltj.set_stack_level',1)
+ function (head)
+ return set_box_stack_level(head, false)
+ end, 'ltj.set_stack_level', 1)
luatexja.pretreat = {
set_box_stack_level = set_box_stack_level,
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-rmlgbm.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-rmlgbm.lua
index bd3110fd7fa..53f5b0136ac 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltj-rmlgbm.lua
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-rmlgbm.lua
@@ -5,52 +5,52 @@ luatexja.load_module('base'); local ltjb = luatexja.base
local cidfont_data = {}
local cache_chars = {}
-local cache_ver = 9
+local cache_ver = 10
local identifiers = fonts.hashes.identifiers
local cid_reg, cid_order, cid_supp, cid_name
local cid_replace = {
["Adobe-Japan1"] = {"UniJIS2004-UTF32", 23059, 7,
- function (i)
- if (231<=i and i<=632) or (8718<=i and i<=8719)
- or (12063<=i and i<=12087) then
- return 327680 -- 655360/2
- elseif 9758<=i and i<=9778 then
- return 218453 -- 655360/3
- elseif 9738<=i and i<=9757 then
- return 163840 -- 655360/4
- end
- end},
+ function (i)
+ if (231<=i and i<=632) or (8718<=i and i<=8719)
+ or (12063<=i and i<=12087) then
+ return 327680 -- 655360/2
+ elseif 9758<=i and i<=9778 then
+ return 218453 -- 655360/3
+ elseif 9738<=i and i<=9757 then
+ return 163840 -- 655360/4
+ end
+ end},
-- 基本的には JIS X 0213:2004 に沿ったマッピング
["Adobe-Korea1"] = {"UniKS-UTF32", 18351, 2,
- function (i)
- if 8094<=i and i<=8100 then
- return 327680 -- 655360/2
- end
- end},
+ function (i)
+ if 8094<=i and i<=8100 then
+ return 327680 -- 655360/2
+ end
+ end},
["Adobe-GB1"] = {"UniGB-UTF32", 30283, 5,
- function (i)
- if (814<=i and i<=939) or (i==7716)
- or (22355<=i and i<=22357) then
- return 327680 -- 655360/2
- end
- end},
+ function (i)
+ if (814<=i and i<=939) or (i==7716)
+ or (22355<=i and i<=22357) then
+ return 327680 -- 655360/2
+ end
+ end},
["Adobe-CNS1"] = {"UniCNS-UTF32", 19178, 7,
- function (i)
- if (13648<=i and i<=13742) or (i==17603) then
- return 327680 -- 655360/2
- end
- end},
+ function (i)
+ if (13648<=i and i<=13742) or (i==17603) then
+ return 327680 -- 655360/2
+ end
+ end},
["Adobe-KR"] = {"UniAKR-UTF32", 22896, 9,
- function (i)
- if i==3057 then
- return 655360*2
- elseif i==3058 then
- return 655360*3
- elseif i==12235 or i==12236 then
- return 163840 -- 655360/4
- end
- end},
+ function (i)
+ if i==3057 then
+ return 655360*2
+ elseif i==3058 then
+ return 655360*3
+ elseif i==12235 or i==12236 then
+ return 163840 -- 655360/4
+ end
+ end},
}
-- reading CID maps
@@ -85,7 +85,7 @@ do
else -- WMA l is in the form "<%x+>%s+<%x+>"
bucs, eucs, cid = string.match(line, "<(%x+)>%s+<(%x+)>%s+<?(%x+)>?")
cid = cid_dec(cid);
- bucs = tonumber(bucs, 16); eucs = tonumber(eucs, 16)
+ bucs = tonumber(bucs, 16); eucs = tonumber(eucs, 16)
for ucs = bucs, eucs do
if not tt[ucs] then
tt[ucs] = mke(cid); cidm[cid]=ucs
@@ -133,12 +133,12 @@ do
cidinfo = { ordering=cid_order, registry=cid_reg, supplement=kx[3] },
encodingbytes = 2, extend=1000, format = 'opentype',
direction = 0, characters = {}, parameters = {
- ascender = 655360*0.88,
- descender = 655360*0.12,
- },
- embedding = "no", cache = "yes", factor = 0, hfactor = 0, vfactor = 0,
- tounicode = 1,
- properties = { language = "dflt", script = "dflt" },
+ ascender = 655360*0.88,
+ descender = 655360*0.12,
+ },
+ embedding = "no", cache = "yes", factor = 0, hfactor = 0, vfactor = 0,
+ tounicode = 1,
+ properties = { language = "dflt", script = "dflt" },
}
cidfont_data[cid_name] = k
@@ -155,7 +155,7 @@ do
for i,v in ipairs(cidmo) do
if v==-1 then
tth[pricode], cidmo[i], pricode
- = { index = i }, pricode, pricode+1;
+ = { index = i }, pricode, pricode+1;
end
ttu[cid_order .. '.' .. i] = cidmo[i]
end
@@ -171,12 +171,10 @@ do
}
k.resources = {
unicodes = ttu,
- features = feat_dummy_vert,
- sequences = seq_dummy_vert,
+ features = feat_dummy_vert,
+ sequences = seq_dummy_vert,
}
k.descriptions = {}
- k.shared.rawdata.resources=k.resources
- k.shared.rawdata.descriptions=k.descriptions
cache_chars[cid_name] = { [655360] = k.characters }
-- 縦書用字形
@@ -185,39 +183,38 @@ do
for i = 0,kx[2] do cidm[i] = -1 end
open_cmap_file(kx[1] .. "-V", increment, tonumber, entry)
for i,v in pairs(tt) do
- ttv[i] = cidmo[v.index] -- "unicode" of vertical variant
+ ttv[i] = cidmo[v.index] -- "unicode" of vertical variant
end
-- tounicode エントリ
local cidp = {nil, nil}; tt, ttu, cidm = {}, {}, {}
open_cmap_file(cid_name .. "-UCS2",
- function(a)
- a[2] = a[2] +1 ; return a
- end,
- function(a)
- cidp[1] = string.upper(string.sub(a,1,string.len(a)-4))
- cidp[2] = tonumber(string.sub(a,-4),16)
- return cidp
- end,
- function(a) return a[1] ..string.format('%04X',a[2]) end)
+ function(a)
+ a[2] = a[2] +1 ; return a
+ end,
+ function(a)
+ cidp[1] = string.upper(string.sub(a,1,string.len(a)-4))
+ cidp[2] = tonumber(string.sub(a,-4),16)
+ return cidp
+ end,
+ function(a) return a[1] ..string.format('%04X',a[2]) end)
-- tt は cid -> tounicode になっているので cidm -> tounicode に変換
local kxf = kx[4]
for i,v in ipairs(cidmo) do
- k.characters[v].width = kxf(i)
- if v>=0xF0000 then
- k.characters[v].tounicode = tt[i]
- end
+ k.characters[v].width = kxf(i)
+ if v>=0xF0000 then
+ k.characters[v].tounicode = tt[i]
+ end
end
-- Save
if k and k.characters and k.characters[46] then
k.characters[46].width = math.floor(655360/14);
end
- ltjb.save_cache( "ltj-cid-auto-" .. string.lower(cid_name),
- {
- version = cache_ver,
- k,
- })
+ ltjb.save_cache("ltj-cid-auto-" .. string.lower(cid_name),
+ {version = cache_ver, k})
+ k.shared.rawdata.resources=k.resources
+ k.shared.rawdata.descriptions=k.descriptions
end
end
@@ -235,11 +232,11 @@ do
function (head, fnum)
local fontdata = font_getfont(fnum)
if head and luatexja.jfont.font_metric_table[fnum].vert_activated then
- local vt = fontdata.ltj_vert_table
- local nh = is_node(head) and to_direct(head) or head
+ local vt = fontdata.ltj_vert_table
+ local nh = is_node(head) and to_direct(head) or head
for n in traverse_id(id_glyph, head) do
if getfont(n)==fnum then
- local c = getchar(n); setchar(n, vt[c] or c)
+ local c = getchar(n); setchar(n, vt[c] or c)
end
end
return head, false
@@ -251,8 +248,10 @@ end
local function cid_cache_outdated(t) return t.version~=cache_ver end
local function read_cid_font()
local dat = ltjb.load_cache("ltj-cid-auto-" .. string.lower(cid_name),
- cid_cache_outdated )
+ cid_cache_outdated)
if dat then
+ dat[1].shared.rawdata.resources=dat[1].resources
+ dat[1].shared.rawdata.descriptions=dat[1].descriptions
cidfont_data[cid_name] = dat[1]
cache_chars[cid_name] = { [655360] = cidfont_data[cid_name].characters }
else
@@ -305,7 +304,7 @@ local function mk_rml(name, size, id)
cachedata.shared = {}
local shared = cachedata.shared
for k, v in pairs(s.shared) do
- shared[k] = v
+ shared[k] = v
end
end
@@ -318,13 +317,13 @@ local function mk_rml(name, size, id)
-- character's default height (optimized for jfm-ujis.lua)
local def_depth = 0.12 * size -- and depth.
if not cache_chars[cid_name][size] then
- cache_chars[cid_name][size] = {}
- for k, v in pairs(cache_chars[cid_name][655360]) do
- cache_chars[cid_name][size][k] = {
- index = v.index, width = v.width * scale,
- height = def_height, depth = def_depth, tounicode = v.tounicode,
- }
- end
+ cache_chars[cid_name][size] = {}
+ for k, v in pairs(cache_chars[cid_name][655360]) do
+ cache_chars[cid_name][size][k] = {
+ index = v.index, width = v.width * scale,
+ height = def_height, depth = def_depth, tounicode = v.tounicode,
+ }
+ end
end
fontdata.characters = cache_chars[cid_name][size]
cachedata.characters = cache_chars[cid_name][size]
@@ -333,15 +332,9 @@ local function mk_rml(name, size, id)
-- other parameters
do
local parameters = {}
- for k, v in pairs(s.parameters) do
- parameters[k] = v * scale
- end
- fontdata.parameters = parameters
- fontdata.size = size
- fontdata.resources = s.resources
- cachedata.parameters = parameters
- cachedata.size = size
- cachedata.resources = s.resources
+ for k, v in pairs(s.parameters) do parameters[k] = v * scale end
+ fontdata.parameters = parameters; fontdata.size = size; fontdata.resources = s.resources
+ cachedata.parameters = parameters; cachedata.size = size; cachedata.resources = s.resources
end
-- no embedding
@@ -373,31 +366,31 @@ local function font_callback(name, size, id, fallback)
local p = basename:find(":")
local q = basename:find("/[BI][BI]?")
if q and p and q<=p then
- basename = basename:gsub('/[BI][BI]?', '', 1)
- p = basename:find(":")
+ basename = basename:gsub('/[BI][BI]?', '', 1)
+ p = basename:find(":")
end
if p then
- local xname = basename:sub(p+1)
- p = 1
- while p do
- local q = xname:find(";", p+1) or xname:len()+1
- if xname:sub(p, p+3)=='cid=' and q>p+4 then
- s = xname:sub(p+4, q-1)
- end
- if xname:len()+1==q then p = nil else p = q + 1 end
- end
+ local xname = basename:sub(p+1)
+ p = 1
+ while p do
+ local q = xname:find(";", p+1) or xname:len()+1
+ if xname:sub(p, p+3)=='cid=' and q>p+4 then
+ s = xname:sub(p+4, q-1)
+ end
+ if xname:len()+1==q then p = nil else p = q + 1 end
+ end
end
cid_reg, cid_order = string.match(s, "^(.-)%-(.-)%-(%d-)$")
if not cid_reg then
cid_reg, cid_order = string.match(s, "^(.-)%-(.-)$")
end
if not prepare_cid_font(cid_reg, cid_order) then
- ltjb.package_error('luatexja',
- "bad cid key `" .. s .. "'",
- "I couldn't find any non-embedded font information for the CID\n" ..
- '`' .. s .. "'. For now, I'll use `Adobe-Japan1-6'.\n"..
- 'Please contact the LuaTeX-ja project team.')
- cid_name = "Adobe-Japan1"
+ ltjb.package_error('luatexja',
+ "bad cid key `" .. s .. "'",
+ "I couldn't find any non-embedded font information for the CID\n" ..
+ '`' .. s .. "'. For now, I'll use `Adobe-Japan1-6'.\n"..
+ 'Please contact the LuaTeX-ja project team.')
+ cid_name = "Adobe-Japan1"
end
return mk_rml(basename, size, id)
else
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-ruby.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-ruby.lua
index 060b3226ad3..865e301f30b 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltj-ruby.lua
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-ruby.lua
@@ -3,12 +3,12 @@
--
luatexbase.provides_module({
name = 'luatexja.ruby',
- date = '2018/09/29',
+ date = '2020-07-30',
description = 'Ruby annotation',
})
luatexja.ruby = {}
-luatexja.load_module('stack'); local ltjs = luatexja.stack
-luatexja.load_module('base'); local ltjb = luatexja.base
+luatexja.load_module 'stack'; local ltjs = luatexja.stack
+luatexja.load_module 'base'; local ltjb = luatexja.base
local to_node = node.direct.tonode
local to_direct = node.direct.todirect
@@ -29,14 +29,14 @@ local node_copy, node_free, node_tail = node.direct.copy, node.direct.free, node
local has_attr, set_attr = node.direct.has_attribute, node.direct.set_attribute
local insert_before, insert_after = node.direct.insert_before, node.direct.insert_after
-local id_hlist = node.id('hlist')
-local id_vlist = node.id('vlist')
-local id_rule = node.id('rule')
-local id_whatsit = node.id('whatsit')
-local id_glue = node.id('glue')
-local id_kern = node.id('kern')
-local id_penalty = node.id('penalty')
-local sid_user = node.subtype('user_defined')
+local id_hlist = node.id 'hlist'
+local id_vlist = node.id 'vlist'
+local id_rule = node.id 'rule'
+local id_whatsit= node.id 'whatsit'
+local id_glue = node.id 'glue'
+local id_kern = node.id 'kern'
+local id_penalty= node.id 'penalty'
+local sid_user = node.subtype 'user_defined'
local ltjs_get_stack_table = luatexja.stack.get_stack_table
local id_pbox_w = 258 -- cluster which consists of a whatsit
@@ -86,20 +86,20 @@ local function gauss(coef)
local deg = #coef
for i = 1, deg do
if coef[i][i]==0 then
- for j = i+1, deg do
- if coef[j][i]~=0 then
+ for j = i+1, deg do
+ if coef[j][i]~=0 then
coef[i], coef[j] = coef[j], coef[i]; break
- end
- end
+ end
+ end
end
for j = 1,deg do
- local d = coef[i][i];
- if j~=i then
- local e = coef[j][i]
- for k = 1, deg+1 do coef[j][k] = coef[j][k] - e*coef[i][k]/d end
- else
- for k = 1, deg+1 do coef[i][k] = coef[i][k]/d end
- end
+ local d = coef[i][i];
+ if j~=i then
+ local e = coef[j][i]
+ for k = 1, deg+1 do coef[j][k] = coef[j][k] - e*coef[i][k]/d end
+ else
+ for k = 1, deg+1 do coef[i][k] = coef[i][k]/d end
+ end
end
end
end
@@ -150,33 +150,33 @@ do
end
function concat(f, b)
if f then
- if b then
- local h, nh = getlist(f), getlist(b)
- if getid(nh)==id_whatsit and getsubtype(nh)==sid_user then
- nh=node_next(nh); node_free(node_prev(nh))
- end
+ if b then
+ local h, nh = getlist(f), getlist(b)
+ if getid(nh)==id_whatsit and getsubtype(nh)==sid_user then
+ nh=node_next(nh); node_free(node_prev(nh))
+ end
set_attr(nh, attr_icflag,
- get_attr_icflag(nh) + PROCESSED_BEGIN_FLAG)
- setfield(node_tail(h), 'next', nh)
- setfield(f, 'head', nil); node_free(f)
- setfield(b, 'head', nil); node_free(b)
- local g = luatexja.jfmglue.main(h,false)
- return node.direct.hpack(g)
- else
- return f
- end
+ get_attr_icflag(nh) + PROCESSED_BEGIN_FLAG)
+ setfield(node_tail(h), 'next', nh)
+ setfield(f, 'head', nil); node_free(f)
+ setfield(b, 'head', nil); node_free(b)
+ local g = luatexja.jfmglue.main(h,false)
+ return node.direct.hpack(g)
+ else
+ return f
+ end
elseif b then
- return b
+ return b
else
- local h = node_new(id_hlist)
- setfield(h, 'subtype', 0)
- setfield(h, 'width', 0)
- setfield(h, 'height', 0)
- setfield(h, 'depth', 0)
- setfield(h, 'glue_set', 0)
- setfield(h, 'glue_order', 0)
- setfield(h, 'head', nil)
- return h
+ local h = node_new(id_hlist)
+ setfield(h, 'subtype', 0)
+ setfield(h, 'width', 0)
+ setfield(h, 'height', 0)
+ setfield(h, 'depth', 0)
+ setfield(h, 'glue_set', 0)
+ setfield(h, 'glue_order', 0)
+ setfield(h, 'head', nil)
+ return h
end
end
end
@@ -208,24 +208,24 @@ do
local hh, hd = getfield(box, 'height'), getfield(box, 'depth')
local hx = h
while hx do
- local hic = has_attr(hx, attr_icflag) or 0
- if (hic == KANJI_SKIP) or (hic == KANJI_SKIP_JFM)
+ local hic = has_attr(hx, attr_icflag) or 0
+ if (hic == KANJI_SKIP) or (hic == KANJI_SKIP_JFM)
or (hic == XKANJI_SKIP) or (hic == XKANJI_SKIP_JFM)
or ((hic<=FROM_JFM+63) and (hic>=FROM_JFM)) then
- -- この 5 種類の空白をのばす
- if getid(hx) == id_kern then
- local k = node_new(id_glue)
- setglue(k, getfield(hx, 'kern'), round(middle*65536), 0,
- 2, 0)
- setfield(k, 'subtype', 0);
- h = insert_after(h, hx, k);
- h = node_remove(h, hx); node_free(hx); hx = k
- else -- glue
+ -- この 5 種類の空白をのばす
+ if getid(hx) == id_kern then
+ local k = node_new(id_glue)
+ setglue(k, getfield(hx, 'kern'), round(middle*65536), 0,
+ 2, 0)
+ setfield(k, 'subtype', 0);
+ h = insert_after(h, hx, k);
+ h = node_remove(h, hx); node_free(hx); hx = k
+ else -- glue
setglue(hx, getfield(hx, 'width'), round(middle*65536), 0,
- 2, 0)
- end
- end
- hx = node_next(hx)
+ 2, 0)
+ end
+ end
+ hx = node_next(hx)
end
-- 先頭の空白を挿入
local k = node_new(id_glue);
@@ -281,25 +281,25 @@ function luatexja.ruby.texiface(rst, rtlr, rtlp)
for i=1, #rtlr do node_free(rtlr[i]) end
for i=1, #rtlp do node_free(rtlp[i]) end
ltjb.package_error('luatexja-ruby',
- 'Group count mismatch between the ruby and\n' ..
- 'the body (' .. #rtlr .. ' != ' .. #rtlp .. ').',
- '')
+ 'Group count mismatch between the ruby and\n' ..
+ 'the body (' .. #rtlr .. ' != ' .. #rtlp .. ').',
+ '')
else
local f = true
for i = 1,#rtlr do
- if getfield(rtlr[i], 'width') > getfield(rtlp[i], 'width') then
- f = false; break
- end
+ if getfield(rtlr[i], 'width') > getfield(rtlp[i], 'width') then
+ f = false; break
+ end
end
if f then -- モノルビ * n
- local r,p = {true}, {true}
- for i = 1,#rtlr do
- r[1] = rtlr[i]; p[1] = rtlp[i]; texiface_low(rst, r, p)
- end
+ local r,p = {true}, {true}
+ for i = 1,#rtlr do
+ r[1] = rtlr[i]; p[1] = rtlp[i]; texiface_low(rst, r, p)
+ end
else
- local w, wv = texiface_low(rst, rtlr, rtlp)
- local id = make_uniq_id(w)
- set_attr(wv, attr_ruby_id, id)
+ local w, wv = texiface_low(rst, rtlr, rtlp)
+ local id = make_uniq_id(w)
+ set_attr(wv, attr_ruby_id, id)
end
end
end
@@ -329,9 +329,9 @@ local function enlarge_parent(r, p, ppre, pmid, ppost, mapre, mapost, intmode)
else -- intmode == 3
local n = min(mapre, mapost)*2
if n < sumprot then
- pre_intrusion = n/2; post_intrusion = n/2
+ pre_intrusion = n/2; post_intrusion = n/2
else
- pre_intrusion = floor(sumprot/2); post_intrusion = sumprot - pre_intrusion
+ pre_intrusion = floor(sumprot/2); post_intrusion = sumprot - pre_intrusion
end
p = enlarge(p, rwidth, ppre, pmid, ppost, pre_intrusion, post_intrusion)
pre_intrusion = min(mapre, pre_intrusion + round(ppre*getfield(p, 'glue_set')*65536))
@@ -350,7 +350,7 @@ end
-- returned value: <new box>, <ruby width>, <post_intrusion>
local max_margin
local function new_ruby_box(r, p, ppre, pmid, ppost,
- mapre, mapost, imode, rgap)
+ mapre, mapost, imode, rgap)
local post_intrusion = 0
local intmode = imode%4
local rpre, rmid, rpost, rsmash
@@ -366,19 +366,19 @@ local function new_ruby_box(r, p, ppre, pmid, ppost,
local need_repack = false
-- margin が大きくなりすぎた時の処理
if round(rpre*getfield(r, 'glue_set')*65536) > max_margin then
- local ps = getlist(r); need_repack = true
- setfield(ps, 'width', max_margin)
+ local ps = getlist(r); need_repack = true
+ setfield(ps, 'width', max_margin)
setfield(ps, 'stretch', 1) -- 全く伸縮しないのも困る
end
if round(rpost*getfield(r, 'glue_set')*65536) > max_margin then
- local ps = node_tail(getlist(r)); need_repack = true
- setfield(ps, 'width', max_margin)
+ local ps = node_tail(getlist(r)); need_repack = true
+ setfield(ps, 'width', max_margin)
setfield(ps, 'stretch', 1) -- 全く伸縮しないのも困る
end
if need_repack then
- local rt = r
- r = node.direct.hpack(getlist(r), getfield(r, 'width'), 'exactly')
- setfield(rt, 'head', nil); node_free(rt);
+ local rt = r
+ r = node.direct.hpack(getlist(r), getfield(r, 'width'), 'exactly')
+ setfield(rt, 'head', nil); node_free(rt);
end
end
local a, k = node_new(id_rule), node_new(id_kern, 1)
@@ -429,8 +429,8 @@ local function pre_low_cal_box(w, cmp)
for j = 1, 2*i do coef[i][j] = 1 end
for j = 2*i+1, 2*cmp+1 do coef[i][j] = 0 end
kf[i], coef[i][2*cmp+2]
- = new_ruby_box(node_copy(nta), node_copy(ntb),
- rtb[6], rtb[5], rtb[4], max_allow_pre, 0, intmode, rgap)
+ = new_ruby_box(node_copy(nta), node_copy(ntb),
+ rtb[6], rtb[5], rtb[4], max_allow_pre, 0, intmode, rgap)
end
node_free(nta); node_free(ntb)
@@ -442,8 +442,8 @@ local function pre_low_cal_box(w, cmp)
for j = 2*i, 2*cmp+1 do coef[cmp+i][j] = 1 end
nta = concat(node_copy(rb[i]), nta); ntb = concat(node_copy(pb[i]), ntb)
kf[cmp+i], coef[cmp+i][2*cmp+2]
- = new_ruby_box(node_copy(nta), node_copy(ntb),
- rtb[9], rtb[8], rtb[7], 0, max_allow_post, intmode, rgap)
+ = new_ruby_box(node_copy(nta), node_copy(ntb),
+ rtb[9], rtb[8], rtb[7], 0, max_allow_post, intmode, rgap)
end
-- ここで,nta, ntb には全 container を連結した box が入っているので
@@ -497,9 +497,9 @@ local function pre_low_app_node(head, w, cmp, coef, ht, dp)
set_attr(nta, attr_ruby, 2*i+1)
-- glue
if i~=cmp or not next_cluster_array[w] then
- nt = node_new(id_glue); insert_after(head, nta, nt)
+ nt = node_new(id_glue); insert_after(head, nta, nt)
else
- nt = next_cluster_array[w]
+ nt = next_cluster_array[w]
end
setglue(nt, coef[i*2+1][2*cmp+2], 0, 0, 0, 0)
set_attr(nt, attr_ruby, 2*i+2)
@@ -557,10 +557,10 @@ do
local function write_aux(wv, num)
local id = has_attr(wv, attr_ruby_id)
if id>0 and cache_handle then
- cache_handle:write(
- 'luatexja.ruby.old_break_info['
- .. tostring(id) .. ']=' .. num
- .. '\n')
+ cache_handle:write(
+ 'luatexja.ruby.old_break_info['
+ .. tostring(id) .. ']=' .. num
+ .. '\n')
end
end
@@ -571,36 +571,36 @@ do
local fn = has_attr(rs[#rs], attr_ruby)
local wv = getfield(rw, 'value')
if hn==1 then
- if fn==2*cmp+2 then
- local hn = node_tail(wv)
- node_remove(wv, hn)
- insert_after(ch, rs[1], hn)
- set_attr(hn, attr_icflag, PROCESSED)
- write_aux(wv, has_attr(hn, attr_ruby))-- 行中形
- else
- local deg, hn = (fn-1)/2, wv
- for i = 1, deg do hn = node_next(hn) end;
- node_remove(wv, hn)
- setfield(hn, 'next', nil)
- insert_after(ch, rs[1], hn)
- set_attr(hn, attr_icflag, PROCESSED)
- write_aux(wv, has_attr(hn, attr_ruby))
- end
+ if fn==2*cmp+2 then
+ local hn = node_tail(wv)
+ node_remove(wv, hn)
+ insert_after(ch, rs[1], hn)
+ set_attr(hn, attr_icflag, PROCESSED)
+ write_aux(wv, has_attr(hn, attr_ruby))-- 行中形
+ else
+ local deg, hn = (fn-1)/2, wv
+ for i = 1, deg do hn = node_next(hn) end;
+ node_remove(wv, hn)
+ setfield(hn, 'next', nil)
+ insert_after(ch, rs[1], hn)
+ set_attr(hn, attr_icflag, PROCESSED)
+ write_aux(wv, has_attr(hn, attr_ruby))
+ end
else
- local deg, hn = max((hn-1)/2,2), wv
- for i = 1, cmp+deg-1 do hn = node_next(hn) end
- -- -1 is needed except the case hn = 3,
- -- because a ending-line form is removed already from the list
- node_remove(wv, hn); setfield(hn, 'next', nil)
- insert_after(ch, rs[1], hn)
- set_attr(hn, attr_icflag, PROCESSED)
- if fn == 2*cmp-1 then
- write_aux(wv, has_attr(hn, attr_ruby))
- end
+ local deg, hn = max((hn-1)/2,2), wv
+ for i = 1, cmp+deg-1 do hn = node_next(hn) end
+ -- -1 is needed except the case hn = 3,
+ -- because a ending-line form is removed already from the list
+ node_remove(wv, hn); setfield(hn, 'next', nil)
+ insert_after(ch, rs[1], hn)
+ set_attr(hn, attr_icflag, PROCESSED)
+ if fn == 2*cmp-1 then
+ write_aux(wv, has_attr(hn, attr_ruby))
+ end
end
for i = 1,#rs do
- local ri = rs[i]
- ch = node_remove(ch, ri); node_free(ri);
+ local ri = rs[i]
+ ch = node_remove(ch, ri); node_free(ri);
end
-- cleanup
if fn >= 2*cmp+1 then node_free(rw) end
@@ -616,26 +616,26 @@ local function post_high_break(head)
for i = 1, #rs do rs[i] = nil end
local ha = getlist(h)
while ha do
- local hai = getid(ha)
- local i = ((hai == id_glue and getsubtype(ha)==0)
+ local hai = getid(ha)
+ local i = ((hai == id_glue and getsubtype(ha)==0)
or (hai == id_rule and getsubtype(ha)==0)
or (hai == id_whatsit and getsubtype(ha)==sid_user
and getfield(ha, 'user_id', RUBY_POST)))
and has_attr(ha, attr_ruby) or 0
- if i==0 then
+ if i==0 then
ha = node_next(ha)
elseif i==1 then
- setfield(h, 'head', post_lown(rs, rw, cmp, getlist(h)))
- for i = 2, #rs do rs[i] = nil end -- rs[1] is set by the next statement
- rs[1], rw = ha, nil; ha = node_next(ha)
- elseif i==2 then
- rw = ha
- cmp = getfield(getfield(rw, 'value'), 'value')
- local hb, hc = node_remove(getlist(h), rw)
- setfield(h, 'head', hb); ha = hc
- else -- i>=3
- rs[#rs+1] = ha; ha = node_next(ha)
- end
+ setfield(h, 'head', post_lown(rs, rw, cmp, getlist(h)))
+ for i = 2, #rs do rs[i] = nil end -- rs[1] is set by the next statement
+ rs[1], rw = ha, nil; ha = node_next(ha)
+ elseif i==2 then
+ rw = ha
+ cmp = getfield(getfield(rw, 'value'), 'value')
+ local hb, hc = node_remove(getlist(h), rw)
+ setfield(h, 'head', hb); ha = hc
+ else -- i>=3
+ rs[#rs+1] = ha; ha = node_next(ha)
+ end
end
setfield(h, 'head', post_lown(rs, rw, cmp, getlist(h)))
end
@@ -659,11 +659,11 @@ local function post_high_hbox(ahead)
elseif i==1 then
head = post_lown(rs, rw, cmp, head)
for i = 2, #rs do rs[i] = nil end -- rs[1] is set by the next statement
- rs[1], rw = ha, nil; ha = node_next(ha)
+ rs[1], rw = ha, nil; ha = node_next(ha)
elseif i==2 then
rw = ha
- cmp = getfield(getfield(rw, 'value'), 'value')
- head, ha = node_remove(head, rw)
+ cmp = getfield(getfield(rw, 'value'), 'value')
+ head, ha = node_remove(head, rw)
else -- i >= 3
rs[#rs+1] = ha; ha = node_next(ha)
end
@@ -730,21 +730,21 @@ do
local RIPOST = luatexja.stack_table_index.RIPOST
local function whatsit_after_callback(s, Nq, Np)
if not s and getfield(Nq.nuc, 'user_id') == RUBY_PRE then
- if Np then
- local last_glue = node_new(id_glue)
- set_attr(last_glue, attr_icflag, 0)
- insert_before(Nq.nuc, Np.first, last_glue)
- Np.first = last_glue
- next_cluster_array[Nq.nuc] = last_glue -- ルビ処理用のグルー
- end
+ if Np then
+ local last_glue = node_new(id_glue)
+ set_attr(last_glue, attr_icflag, 0)
+ insert_before(Nq.nuc, Np.first, last_glue)
+ Np.first = last_glue
+ next_cluster_array[Nq.nuc] = last_glue -- ルビ処理用のグルー
+ end
local nqnv = getfield(Nq.nuc, 'value')
local x = node_next(node_next(nqnv))
for i = 2, getfield(nqnv, 'value') do x = node_next(node_next(x)) end
Nq.last_char = luatexja.jfmglue.check_box_high(Nq, getlist(x), nil)
luatexja.jfmglue.after_hlist(Nq)
if Np and Np.id ~=id_pbox_w and type(Np.char)=='number' then
- -- Np is a JAchar
- local rm = has_attr(nqnv, attr_ruby_mode)
+ -- Np is a JAchar
+ local rm = has_attr(nqnv, attr_ruby_mode)
if has_attr(nqnv, attr_ruby_maxpostp) < 0 then -- auto
local p = round((ltjs.table_current_stack[RIPOST + Np.char] or 0)
*has_attr(nqnv, attr_ruby))
@@ -761,19 +761,19 @@ do
set_attr(nqnv, attr_ruby_maxpostp, p)
end
Np.prev_ruby = has_attr(getfield(Nq.nuc, 'value'), attr_ruby_id)
- -- 前のクラスタがルビであったことのフラグ
+ -- 前のクラスタがルビであったことのフラグ
else -- 直前が文字以外
- local nqnv = getfield(Nq.nuc, 'value')
+ local nqnv = getfield(Nq.nuc, 'value')
if has_attr(nqnv, attr_ruby_maxpostp) < 0 then -- auto
- set_attr(nqnv, attr_ruby_maxpostp, 0)
- if has_attr(nqnv, attr_ruby_mode)%4 >= 2 then
- set_attr(nqnv, attr_ruby_maxprep, 0)
- end
- end
+ set_attr(nqnv, attr_ruby_maxpostp, 0)
+ if has_attr(nqnv, attr_ruby_mode)%4 >= 2 then
+ set_attr(nqnv, attr_ruby_maxprep, 0)
+ end
+ end
end
- return true
+ return true
else
- return s
+ return s
end
end
luatexbase.add_to_callback("luatexja.jfmglue.whatsit_after", whatsit_after_callback,
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-setwidth.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-setwidth.lua
index 964d49e0635..372a0e04128 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltj-setwidth.lua
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-setwidth.lua
@@ -2,11 +2,11 @@
-- ltj-setwidth.lua
--
-luatexja.load_module('base'); local ltjb = luatexja.base
-luatexja.load_module('stack'); local ltjs = luatexja.stack
-luatexja.load_module('jfont'); local ltjf = luatexja.jfont
-luatexja.load_module('direction'); local ltjd = luatexja.direction
-luatexja.load_module('lotf_aux'); local ltju = luatexja.lotf_aux
+luatexja.load_module 'base'; local ltjb = luatexja.base
+luatexja.load_module 'stack'; local ltjs = luatexja.stack
+luatexja.load_module 'jfont'; local ltjf = luatexja.jfont
+luatexja.load_module 'direction'; local ltjd = luatexja.direction
+luatexja.load_module 'lotf_aux'; local ltju = luatexja.lotf_aux
local setfield = node.direct.setfield
local getfield = node.direct.getfield
@@ -44,16 +44,16 @@ local node_insert_before = node.direct.insert_before
local node_insert_after = node.direct.insert_after
local round = tex.round
-local id_glyph = node.id('glyph')
-local id_kern = node.id('kern')
-local id_hlist = node.id('hlist')
-local id_vlist = node.id('vlist')
-local id_rule = node.id('rule')
-local id_math = node.id('math')
-local id_whatsit = node.id('whatsit')
-local sid_save = node.subtype('pdf_save')
-local sid_restore = node.subtype('pdf_restore')
-local sid_matrix = node.subtype('pdf_setmatrix')
+local id_glyph = node.id 'glyph'
+local id_kern = node.id 'kern'
+local id_hlist = node.id 'hlist'
+local id_vlist = node.id 'vlist'
+local id_rule = node.id 'rule'
+local id_math = node.id 'math'
+local id_whatsit= node.id 'whatsit'
+local sid_save = node.subtype 'pdf_save'
+local sid_restore = node.subtype 'pdf_restore'
+local sid_matrix = node.subtype 'pdf_setmatrix'
local dir_tate = luatexja.dir_table.dir_tate
local attr_ykblshift = luatexbase.attributes['ltj@ykblshift']
@@ -80,9 +80,9 @@ local ltjw = {} --export
luatexja.setwidth = ltjw
luatexbase.create_callback("luatexja.set_width", "data",
- function (fstable, fmtable, char_data)
- return fstable
- end)
+ function (fstable, fmtable, char_data)
+ return fstable
+ end)
local call_callback = luatexbase.call_callback
local fshift = { down = 0, left = 0 }
@@ -111,19 +111,19 @@ local function capsule_glyph_yoko(p, met, char_data, head, dir)
if ht_diff == 0 and dp_diff ==0 then -- offset only
set_attr(p, attr_icflag, PROCESSED)
local xo, yo = getoffsets(p)
- setoffsets(p, xo - fshift.left, yo - kbl - fshift.down)
- return node_next(p), head, p
+ setoffsets(p, xo - fshift.left, yo - kbl - fshift.down)
+ return node_next(p), head, p
elseif ht_diff >= 0 and dp_diff >=0 then -- rule
- local box = node_new(id_rule,rule_subtype)
+ local box = node_new(id_rule,rule_subtype)
local xo, yo = getoffsets(p)
- setoffsets(p, xo, yo - kbl - fshift.down)
- setwhd(box, 0, fheight - kbl, fdepth + kbl)
- setdir(box, dir)
- set_attr(box, attr_icflag, PACKED)
- set_attr(p, attr_icflag, PROCESSED)
- head = p and node_insert_before(head, p, box)
- or node_insert_after(head, node_tail(head), box)
- return node_next(p), head, p, box
+ setoffsets(p, xo, yo - kbl - fshift.down)
+ setwhd(box, 0, fheight - kbl, fdepth + kbl)
+ setdir(box, dir)
+ set_attr(box, attr_icflag, PACKED)
+ set_attr(p, attr_icflag, PROCESSED)
+ head = p and node_insert_before(head, p, box)
+ or node_insert_after(head, node_tail(head), box)
+ return node_next(p), head, p, box
end
end
@@ -133,7 +133,7 @@ local function capsule_glyph_yoko(p, met, char_data, head, dir)
if char_data.round_threshold then
local frac = pwidth / fwidth
local quot = floor(frac+0.5)
- if abs(frac-quot) <char_data.round_threshold then fwidth = fwidth * quot end
+ if abs(frac-quot) <char_data.round_threshold then fwidth = fwidth * quot end
end
end
local xo, yo = getoffsets(p)
@@ -190,12 +190,12 @@ local function capsule_glyph_tate(p, met, char_data, head, dir)
local pf, pc = getfont(p), getchar(p)
local feir = ltjf_font_extra_info[pf]
if feir and feir.rotation and met.vert_activated then
- if feir.rotation[pc] and (has_attr(p, attr_vert_ori) or 0)<=0 then
- return capsule_glyph_tate_rot(p, met, char_data, head, dir,
+ if feir.rotation[pc] and (has_attr(p, attr_vert_ori) or 0)<=0 then
+ return capsule_glyph_tate_rot(p, met, char_data, head, dir,
0.5*(get_ascender(pf)-get_descender(pf)))
- end
- end
- pwidth, ascender = feir.vheight[pc]*met.size, feir.vorigin[pc]*met.size
+ end
+ end
+ pwidth, ascender = feir.vheight[pc]*met.size, feir.vorigin[pc]*met.size
end
fwidth = fwidth or pwidth
if pwidth>fwidth and char_data.round_threshold then
@@ -263,21 +263,21 @@ function luatexja.setwidth.apply_ashift_math(head, last, attr_ablshift)
for p in node_traverse(head) do
local pid = getid(p)
if p==last then
- return
+ return
elseif (has_attr(p, attr_icflag) or 0) ~= PROCESSED then
- if pid==id_hlist or pid==id_vlist then
- setfield(p, 'shift', getfield(p, 'shift') + (has_attr(p,attr_ablshift) or 0))
- elseif pid==id_rule then
- local v = has_attr(p,attr_ablshift) or 0
- setfield(p, 'height', getfield(p, 'height')-v)
- setfield(p, 'depth', getdepth(p)+v)
- set_attr(p, attr_icflag, PROCESSED)
- elseif pid==id_glyph then
- -- 欧文文字; 和文文字は pid == id_hlist の場合で処理される
- -- (see conv_jchar_to_hbox_A in ltj-math.lua)
- setfield(p, 'yoffset',
- getfield(p, 'yoffset') - (has_attr(p,attr_ablshift) or 0))
- end
+ if pid==id_hlist or pid==id_vlist then
+ setfield(p, 'shift', getfield(p, 'shift') + (has_attr(p,attr_ablshift) or 0))
+ elseif pid==id_rule then
+ local v = has_attr(p,attr_ablshift) or 0
+ setfield(p, 'height', getfield(p, 'height')-v)
+ setfield(p, 'depth', getdepth(p)+v)
+ set_attr(p, attr_icflag, PROCESSED)
+ elseif pid==id_glyph then
+ -- 欧文文字; 和文文字は pid == id_hlist の場合で処理される
+ -- (see conv_jchar_to_hbox_A in ltj-math.lua)
+ setfield(p, 'yoffset',
+ getfield(p, 'yoffset') - (has_attr(p,attr_ablshift) or 0))
+ end
set_attr(p, attr_icflag, PROCESSED)
end
end
@@ -294,28 +294,28 @@ do
if not head then return end
local y_adjust, node_depth, adj_depth = 0, 0, 0
for lp in node_traverse_id(id_glyph, head) do
- y_adjust = has_attr(lp,attr_ablshift) or 0
- local ld = getdepth(lp)
- node_depth = max(ld + min(y_adjust, 0), node_depth)
- adj_depth = (y_adjust>0) and max(ld + y_adjust, adj_depth) or adj_depth
- setfield(lp, 'yoffset', getfield(lp, 'yoffset') - y_adjust)
+ y_adjust = has_attr(lp,attr_ablshift) or 0
+ local ld = getdepth(lp)
+ node_depth = max(ld + min(y_adjust, 0), node_depth)
+ adj_depth = (y_adjust>0) and max(ld + y_adjust, adj_depth) or adj_depth
+ setfield(lp, 'yoffset', getfield(lp, 'yoffset') - y_adjust)
end
if adj_depth>node_depth then
- local r = node_new(id_rule,rule_subtype)
- setwhd(r, 0, 0, adj_depth); setdir(r, tex_dir)
- set_attr(r, attr_icflag, PROCESSED)
- if field=='post' then
- node_insert_after(head, head, r)
- else
- setfield(disc, field, (node_insert_before(head, head, r)))
- end
+ local r = node_new(id_rule,rule_subtype)
+ setwhd(r, 0, 0, adj_depth); setdir(r, tex_dir)
+ set_attr(r, attr_icflag, PROCESSED)
+ if field=='post' then
+ node_insert_after(head, head, r)
+ else
+ setfield(disc, field, (node_insert_before(head, head, r)))
+ end
end
end
function luatexja.setwidth.apply_ashift_disc(d, is_dir_tate, dir)
attr_ablshift = is_dir_tate and attr_tablshift or attr_yablshift
disc, tex_dir = d, dir
- ashift_disc_inner('pre')
- ashift_disc_inner('post')
- ashift_disc_inner('replace')
+ ashift_disc_inner 'pre'
+ ashift_disc_inner 'post'
+ ashift_disc_inner 'replace'
end
end
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-stack.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-stack.lua
index abbc8e95c22..a0cd2e286ec 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltj-stack.lua
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-stack.lua
@@ -3,19 +3,19 @@
--
luatexbase.provides_module({
name = 'luatexja.stack',
- date = '2019/09/26',
+ date = '2020-07-30',
description = 'LuaTeX-ja stack system',
})
luatexja.stack = {}
local ltjs=luatexja.stack
-luatexja.load_module('base'); local ltjb = luatexja.base
+luatexja.load_module 'base'; local ltjb = luatexja.base
--------------------------------------------------------------------------------
-- stack table (obeys TeX's grouping)
--------------------------------------------------------------------------------
local node_new = node.new
-local id_whatsit = node.id('whatsit')
-local sid_user = node.subtype('user_defined')
+local id_whatsit = node.id 'whatsit'
+local sid_user = node.subtype 'user_defined'
local STCK = luatexja.userid_table.STCK
local fastcopy = table.fastcopy
local setcount, getcount = tex.setcount, tex.getcount
@@ -27,23 +27,23 @@ ltjs.charprop_stack_table = charprop_stack_table
charprop_stack_table[0]={}
local function get_stack_level()
- local i = getcount('ltj@@stack')
+ local i = getcount 'ltj@@stack'
local j = tex.currentgrouplevel
- if j > getcount('ltj@@group@level') then
+ if j > getcount 'ltj@@group@level' then
i = i+1 -- new stack level
local gd = tex.globaldefs
if gd~=0 then tex.globaldefs = 0 end
-- 'tex.globaldefs = 0' is local even if \globaldefs > 0.
setcount('ltj@@group@level', j)
for k,v in pairs(charprop_stack_table) do -- clear the stack above i
- if k>=i then charprop_stack_table[k]=nil end
+ if k>=i then charprop_stack_table[k]=nil end
end
charprop_stack_table[i] = fastcopy(charprop_stack_table[i-1])
setcount('ltj@@stack', i)
if gd~=0 then tex.globaldefs = gd end
if tex.nest[tex.nest.ptr].mode == -ltjs.hmode then -- rest. hmode のみ
- local g = node_new(id_whatsit, sid_user)
- g.user_id=STCK; g.type=100; g.value=j; node.write(g)
+ local g = node_new(id_whatsit, sid_user)
+ g.user_id=STCK; g.type=100; g.value=j; node.write(g)
end
end
return i
@@ -68,10 +68,10 @@ function ltjs.set_stack_perchar(m,lb,ub, getter)
local p = tonumber((getter or scan_int)())
if p<lb or p>ub then
ltjb.package_error('luatexja',
- "invalid code (".. tostring(p) .. ")",
- "The code should in the range "..tostring(lb) .. '..' ..
- tostring(ub) .. ".\n" ..
- "I'm going to use 0 instead of that illegal code value.")
+ "invalid code (".. tostring(p) .. ")",
+ "The code should in the range "..tostring(lb) .. '..' ..
+ tostring(ub) .. ".\n" ..
+ "I'm going to use 0 instead of that illegal code value.")
p=0
end
set_stack_table(m+ltjb.in_unicode(c, true), p)
@@ -81,9 +81,9 @@ end
function ltjs.set_stack_font(m,c,p)
if type(c)~='number' or c<0 or c>255 then
ltjb.package_error('luatexja',
- "invalid family number (".. tostring(c) .. ")",
- "The family number should in the range 0 .. 255.\n" ..
- "I'm going to use 0 instead of that illegal family number.")
+ "invalid family number (".. tostring(c) .. ")",
+ "The family number should in the range 0 .. 255.\n" ..
+ "I'm going to use 0 instead of that illegal family number.")
c=0
end
set_stack_table(m+c, p)
@@ -103,12 +103,12 @@ function ltjs.set_stack_skip(m,sp)
charprop_stack_table[i][m].shrink_order = sp.shrink_order
if luatexja.isglobal=='global' then
for j,v in pairs(charprop_stack_table) do
- if not charprop_stack_table[j][m] then charprop_stack_table[j][m] = {} end
- charprop_stack_table[j][m].width = sp.width
- charprop_stack_table[j][m].stretch = sp.stretch
- charprop_stack_table[j][m].shrink = sp.shrink
- charprop_stack_table[j][m].stretch_order = sp.stretch_order
- charprop_stack_table[j][m].shrink_order = sp.shrink_order
+ if not charprop_stack_table[j][m] then charprop_stack_table[j][m] = {} end
+ charprop_stack_table[j][m].width = sp.width
+ charprop_stack_table[j][m].stretch = sp.stretch
+ charprop_stack_table[j][m].shrink = sp.shrink
+ charprop_stack_table[j][m].stretch_order = sp.stretch_order
+ charprop_stack_table[j][m].shrink_order = sp.shrink_order
end
end
end
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-unicode-ccfix.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-unicode-ccfix.lua
index 47f41f359ec..1e2234a8e68 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltj-unicode-ccfix.lua
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-unicode-ccfix.lua
@@ -1,5 +1,5 @@
-- Do not edit this file!
--- Created from LineBreak.txt by ltj-unicode-ccfix_make.pl on 2019年 7月 8日 月曜日 06:15:17 JST.
+-- Created from LineBreak.txt by ltj-unicode-ccfix_make.pl on 2020年 7月 4日 土曜日 11:27:40 JST.
-- In case of errors, fix the Perl script instead.
local tex_catcode = tex.setcatcode
local tex_getcc = tex.getcatcode
@@ -78,7 +78,7 @@ set_letter(0x3131,0x318E)
set_letter(0x3190,0x3191)
set_letter(0x3192,0x3195)
set_letter(0x3196,0x319F)
-set_letter(0x31A0,0x31BA)
+set_letter(0x31A0,0x31BF)
set_letter(0x31C0,0x31E3)
set_letter(0x3200,0x321E)
set_letter(0x3220,0x3229)
@@ -91,10 +91,9 @@ set_letter(0x328A,0x32B0)
set_letter(0x32B1,0x32BF)
set_letter(0x32C0,0x32FF)
set_letter(0x3300,0x33FF)
-set_letter(0x3400,0x4DB5)
-set_letter(0x4DB6,0x4DBF)
-set_letter(0x4E00,0x9FEF)
-set_letter(0x9FF0,0x9FFF)
+set_letter(0x3400,0x4DBF)
+set_letter(0x4E00,0x9FFC)
+set_letter(0x9FFD,0x9FFF)
set_letter(0xA000,0xA014)
set_letter(0xA016,0xA48C)
set_letter(0xA490,0xA4C6)
@@ -144,7 +143,8 @@ set_letter(0xFFE2,0xFFE2)
set_letter(0xFFE3,0xFFE3)
set_letter(0xFFE4,0xFFE4)
set_letter(0x17000,0x187F7)
-set_letter(0x18800,0x18AF2)
+set_letter(0x18800,0x18AFF)
+set_letter(0x18D00,0x18D08)
set_letter(0x1B000,0x1B0FF)
set_letter(0x1B100,0x1B11E)
set_letter(0x1B170,0x1B2FB)
@@ -162,7 +162,8 @@ set_letter(0x1F0D1,0x1F0F5)
set_letter(0x1F0F6,0x1F0FF)
set_letter(0x1F10D,0x1F10F)
set_letter(0x1F16D,0x1F16F)
-set_letter(0x1F1AD,0x1F1E5)
+set_letter(0x1F1AD,0x1F1AD)
+set_letter(0x1F1AE,0x1F1E5)
set_letter(0x1F200,0x1F202)
set_letter(0x1F203,0x1F20F)
set_letter(0x1F210,0x1F23B)
@@ -211,12 +212,12 @@ set_letter(0x1F680,0x1F6A2)
set_letter(0x1F6A4,0x1F6B3)
set_letter(0x1F6B7,0x1F6BF)
set_letter(0x1F6C1,0x1F6CB)
-set_letter(0x1F6CD,0x1F6D5)
-set_letter(0x1F6D6,0x1F6DF)
+set_letter(0x1F6CD,0x1F6D7)
+set_letter(0x1F6D8,0x1F6DF)
set_letter(0x1F6E0,0x1F6EC)
set_letter(0x1F6ED,0x1F6EF)
-set_letter(0x1F6F0,0x1F6FA)
-set_letter(0x1F6FB,0x1F6FF)
+set_letter(0x1F6F0,0x1F6FC)
+set_letter(0x1F6FD,0x1F6FF)
set_letter(0x1F774,0x1F77F)
set_letter(0x1F7D5,0x1F7D8)
set_letter(0x1F7D9,0x1F7DF)
@@ -226,42 +227,44 @@ set_letter(0x1F80C,0x1F80F)
set_letter(0x1F848,0x1F84F)
set_letter(0x1F85A,0x1F85F)
set_letter(0x1F888,0x1F88F)
-set_letter(0x1F8AE,0x1F8FF)
-set_letter(0x1F90C,0x1F90C)
+set_letter(0x1F8AE,0x1F8AF)
+set_letter(0x1F8B0,0x1F8B1)
+set_letter(0x1F8B2,0x1F8FF)
set_letter(0x1F90D,0x1F90E)
set_letter(0x1F910,0x1F917)
set_letter(0x1F920,0x1F925)
set_letter(0x1F927,0x1F92F)
set_letter(0x1F93A,0x1F93B)
-set_letter(0x1F93F,0x1F971)
-set_letter(0x1F972,0x1F972)
-set_letter(0x1F973,0x1F976)
-set_letter(0x1F977,0x1F979)
-set_letter(0x1F97A,0x1F9A2)
-set_letter(0x1F9A3,0x1F9A4)
-set_letter(0x1F9A5,0x1F9AA)
-set_letter(0x1F9AB,0x1F9AD)
-set_letter(0x1F9AE,0x1F9B4)
+set_letter(0x1F93F,0x1F976)
+set_letter(0x1F978,0x1F978)
+set_letter(0x1F979,0x1F979)
+set_letter(0x1F97A,0x1F9B4)
set_letter(0x1F9B7,0x1F9B7)
set_letter(0x1F9BA,0x1F9BA)
-set_letter(0x1F9BC,0x1F9CA)
-set_letter(0x1F9CB,0x1F9CC)
+set_letter(0x1F9BC,0x1F9CB)
+set_letter(0x1F9CC,0x1F9CC)
set_letter(0x1F9D0,0x1F9D0)
set_letter(0x1F9DE,0x1F9FF)
set_letter(0x1FA54,0x1FA5F)
set_letter(0x1FA60,0x1FA6D)
set_letter(0x1FA6E,0x1FA6F)
-set_letter(0x1FA70,0x1FA73)
-set_letter(0x1FA74,0x1FA77)
+set_letter(0x1FA70,0x1FA74)
+set_letter(0x1FA75,0x1FA77)
set_letter(0x1FA78,0x1FA7A)
set_letter(0x1FA7B,0x1FA7F)
-set_letter(0x1FA80,0x1FA82)
-set_letter(0x1FA83,0x1FA8F)
-set_letter(0x1FA90,0x1FA95)
-set_letter(0x1FA96,0x1FAFF)
-set_letter(0x1FB00,0x1FFFD)
-set_letter(0x20000,0x2A6D6)
-set_letter(0x2A6D7,0x2A6FF)
+set_letter(0x1FA80,0x1FA86)
+set_letter(0x1FA87,0x1FA8F)
+set_letter(0x1FA90,0x1FAA8)
+set_letter(0x1FAA9,0x1FAAF)
+set_letter(0x1FAB0,0x1FAB6)
+set_letter(0x1FAB7,0x1FABF)
+set_letter(0x1FAC0,0x1FAC2)
+set_letter(0x1FAC3,0x1FACF)
+set_letter(0x1FAD0,0x1FAD6)
+set_letter(0x1FAD7,0x1FAFF)
+set_letter(0x1FC00,0x1FFFD)
+set_letter(0x20000,0x2A6DD)
+set_letter(0x2A6DE,0x2A6FF)
set_letter(0x2A700,0x2B734)
set_letter(0x2B735,0x2B73F)
set_letter(0x2B740,0x2B81D)
@@ -273,4 +276,5 @@ set_letter(0x2EBE1,0x2F7FF)
set_letter(0x2F800,0x2FA1D)
set_letter(0x2FA1E,0x2FA1F)
set_letter(0x2FA20,0x2FFFD)
-set_letter(0x30000,0x3FFFD)
+set_letter(0x30000,0x3134A)
+set_letter(0x3134B,0x3FFFD)
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjarticle.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjarticle.cls
index f7c13345312..5cc447f5d64 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltjarticle.cls
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltjarticle.cls
@@ -23,7 +23,7 @@
%% File: ltjclasses.dtx
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{ltjarticle}
- [2020/01/13 v1.8e-ltj-17
+ [2020/07/27 v1.8e-ltj-19
Standard LuaLaTeX-ja class]
\RequirePackage{luatexja}
\newcounter{@paper}
@@ -126,6 +126,12 @@
\fi
\DeclareOption{draft}{\setlength\overfullrule{5pt}}
\DeclareOption{final}{\setlength\overfullrule{0pt}}
+\newif\ifptexmin
+\DeclareOption{ptexmin}{\ptexmintrue}%
+\DeclareOption{disablejfam}{}
+\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final}
+\ProcessOptions\relax
+\ifptexmin
\directlua{luatexbase.add_to_callback('luatexja.load_jfm',
function (ji, jn) ji.chars['parbdd'] = 0; return ji end,
'ltj.jclasses_load_jfm', 1)}
@@ -135,10 +141,9 @@
\DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.962216] \ltj@stdgtfont:jfm=min;jfmvar=goth}{}
\ltjglobalsetparameter{differentjfm=both}
\directlua{luatexbase.remove_from_callback('luatexja.load_jfm', 'ltj.jclasses_load_jfm')}
-\DeclareOption{disablejfam}{}
-\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final}
-\ProcessOptions\relax
+\fi
\input{ltjsize1\@ptsize.clo}
+
\def\Cjascale{0.962216}
\if@stysize
\setlength\columnsep{2\Cwd}
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjbk10.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjbk10.clo
index 64c2c8fc462..f4dbe032dc8 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltjbk10.clo
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltjbk10.clo
@@ -23,7 +23,7 @@
%% File: ltjclasses.dtx
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{ltjbk10.clo}
- [2020/01/13 v1.8e-ltj-17
+ [2020/07/27 v1.8e-ltj-19
Standard LuaLaTeX-ja file (size option)]
\renewcommand{\normalsize}{%
\@setfontsize\normalsize\@xpt{15}%
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjbk11.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjbk11.clo
index 76611c50ab5..748bd751879 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltjbk11.clo
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltjbk11.clo
@@ -23,7 +23,7 @@
%% File: ltjclasses.dtx
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{ltjbk11.clo}
- [2020/01/13 v1.8e-ltj-17
+ [2020/07/27 v1.8e-ltj-19
Standard LuaLaTeX-ja file (size option)]
\renewcommand{\normalsize}{%
\@setfontsize\normalsize\@xipt{15.5}%
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjbk12.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjbk12.clo
index c07a399c679..9e70985ccd5 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltjbk12.clo
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltjbk12.clo
@@ -23,7 +23,7 @@
%% File: ltjclasses.dtx
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{ltjbk12.clo}
- [2020/01/13 v1.8e-ltj-17
+ [2020/07/27 v1.8e-ltj-19
Standard LuaLaTeX-ja file (size option)]
\renewcommand{\normalsize}{%
\@setfontsize\normalsize\@xiipt{16.5}%
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjbook.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjbook.cls
index 02a58a4699f..21390be6a03 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltjbook.cls
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltjbook.cls
@@ -23,7 +23,7 @@
%% File: ltjclasses.dtx
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{ltjbook}
- [2020/01/13 v1.8e-ltj-17
+ [2020/07/27 v1.8e-ltj-19
Standard LuaLaTeX-ja class]
\RequirePackage{luatexja}
\newcounter{@paper}
@@ -136,6 +136,12 @@
\fi
\DeclareOption{draft}{\setlength\overfullrule{5pt}}
\DeclareOption{final}{\setlength\overfullrule{0pt}}
+\newif\ifptexmin
+\DeclareOption{ptexmin}{\ptexmintrue}%
+\DeclareOption{disablejfam}{}
+\ExecuteOptions{a4paper,10pt,twoside,onecolumn,final,openright}
+\ProcessOptions\relax
+\ifptexmin
\directlua{luatexbase.add_to_callback('luatexja.load_jfm',
function (ji, jn) ji.chars['parbdd'] = 0; return ji end,
'ltj.jclasses_load_jfm', 1)}
@@ -145,10 +151,9 @@
\DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.962216] \ltj@stdgtfont:jfm=min;jfmvar=goth}{}
\ltjglobalsetparameter{differentjfm=both}
\directlua{luatexbase.remove_from_callback('luatexja.load_jfm', 'ltj.jclasses_load_jfm')}
-\DeclareOption{disablejfam}{}
-\ExecuteOptions{a4paper,10pt,twoside,onecolumn,final,openright}
-\ProcessOptions\relax
+\fi
\input{ltjbk1\@ptsize.clo}
+
\def\Cjascale{0.962216}
\if@stysize
\setlength\columnsep{2\Cwd}
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjreport.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjreport.cls
index 94a61e3b390..109758df807 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltjreport.cls
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltjreport.cls
@@ -23,7 +23,7 @@
%% File: ltjclasses.dtx
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{ltjreport}
- [2020/01/13 v1.8e-ltj-17
+ [2020/07/27 v1.8e-ltj-19
Standard LuaLaTeX-ja class]
\RequirePackage{luatexja}
\newcounter{@paper}
@@ -134,6 +134,12 @@
\fi
\DeclareOption{draft}{\setlength\overfullrule{5pt}}
\DeclareOption{final}{\setlength\overfullrule{0pt}}
+\newif\ifptexmin
+\DeclareOption{ptexmin}{\ptexmintrue}%
+\DeclareOption{disablejfam}{}
+\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final,openany}
+\ProcessOptions\relax
+\ifptexmin
\directlua{luatexbase.add_to_callback('luatexja.load_jfm',
function (ji, jn) ji.chars['parbdd'] = 0; return ji end,
'ltj.jclasses_load_jfm', 1)}
@@ -143,10 +149,9 @@
\DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.962216] \ltj@stdgtfont:jfm=min;jfmvar=goth}{}
\ltjglobalsetparameter{differentjfm=both}
\directlua{luatexbase.remove_from_callback('luatexja.load_jfm', 'ltj.jclasses_load_jfm')}
-\DeclareOption{disablejfam}{}
-\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final,openany}
-\ProcessOptions\relax
+\fi
\input{ltjsize1\@ptsize.clo}
+
\def\Cjascale{0.962216}
\if@stysize
\setlength\columnsep{2\Cwd}
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjsarticle.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjsarticle.cls
index a5940f3f334..d8c4634397a 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltjsarticle.cls
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltjsarticle.cls
@@ -38,7 +38,7 @@
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{ltjsarticle}
- [2019/11/23 ltjsclasses ]
+ [2020/05/30 ltjsclasses ]
\def\jsc@clsname{ltjsarticle}
\def\Cjascale{0.924715}
\RequirePackage{luatexja}
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjsbook.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjsbook.cls
index 760c4d1b72a..5c8a3f2c76f 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltjsbook.cls
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltjsbook.cls
@@ -38,7 +38,7 @@
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{ltjsbook}
- [2019/11/23 ltjsclasses ]
+ [2020/05/30 ltjsclasses ]
\def\jsc@clsname{ltjsbook}
\def\Cjascale{0.924715}
\RequirePackage{luatexja}
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjsize10.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjsize10.clo
index a43efa4c6f7..549d1e0daf1 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltjsize10.clo
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltjsize10.clo
@@ -23,7 +23,7 @@
%% File: ltjclasses.dtx
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{ltjsize10.clo}
- [2020/01/13 v1.8e-ltj-17
+ [2020/07/27 v1.8e-ltj-19
Standard LuaLaTeX-ja file (size option)]
\renewcommand{\normalsize}{%
\@setfontsize\normalsize\@xpt{15}%
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjsize11.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjsize11.clo
index 05e1877bbc0..ef22a16c7a4 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltjsize11.clo
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltjsize11.clo
@@ -23,7 +23,7 @@
%% File: ltjclasses.dtx
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{ltjsize11.clo}
- [2020/01/13 v1.8e-ltj-17
+ [2020/07/27 v1.8e-ltj-19
Standard LuaLaTeX-ja file (size option)]
\renewcommand{\normalsize}{%
\@setfontsize\normalsize\@xipt{15.5}%
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjsize12.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjsize12.clo
index cff0eb1f4a5..e532731aebe 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltjsize12.clo
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltjsize12.clo
@@ -23,7 +23,7 @@
%% File: ltjclasses.dtx
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{ltjsize12.clo}
- [2020/01/13 v1.8e-ltj-17
+ [2020/07/27 v1.8e-ltj-19
Standard LuaLaTeX-ja file (size option)]
\renewcommand{\normalsize}{%
\@setfontsize\normalsize\@xiipt{16.5}%
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjskiyou.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjskiyou.cls
index b1af46b3d02..89d302864f9 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltjskiyou.cls
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltjskiyou.cls
@@ -38,7 +38,7 @@
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{ltjskiyou}
- [2019/11/23 ltjsclasses ]
+ [2020/05/30 ltjsclasses ]
\def\jsc@clsname{ltjskiyou}
\def\Cjascale{0.924715}
\RequirePackage{luatexja}
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjspf.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjspf.cls
index 8a78039e13f..d79d1b93305 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltjspf.cls
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltjspf.cls
@@ -38,7 +38,7 @@
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{ltjspf}
- [2019/11/23 ltjsclasses ]
+ [2020/05/30 ltjsclasses ]
\def\jsc@clsname{ltjspf}
\def\Cjascale{0.903375}
\RequirePackage{luatexja}
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjsreport.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjsreport.cls
index 1f0044376e3..1771f91a936 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltjsreport.cls
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltjsreport.cls
@@ -38,7 +38,7 @@
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{ltjsreport}
- [2019/11/23 ltjsclasses ]
+ [2020/05/30 ltjsclasses ]
\def\jsc@clsname{ltjsreport}
\def\Cjascale{0.924715}
\RequirePackage{luatexja}
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjtarticle.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjtarticle.cls
index e482ac49b4c..960a4832776 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltjtarticle.cls
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltjtarticle.cls
@@ -23,7 +23,7 @@
%% File: ltjclasses.dtx
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{ltjtarticle}
- [2020/01/13 v1.8e-ltj-17
+ [2020/07/27 v1.8e-ltj-19
Standard LuaLaTeX-ja class]
\RequirePackage{luatexja}
\newcounter{@paper}
@@ -102,17 +102,6 @@
\DeclareOption{tate}{%
\tate\AtBeginDocument{\message{《縦組モード》}\adjustbaseline}%
}
-\AtEndOfPackageFile{everyshi}{%
- \def\@EveryShipout@Output{%
- \setbox8\vbox{%
- \yoko
- \@EveryShipout@Hook
- \@EveryShipout@AtNextHook
- \global\setbox\luatexoutputbox=\box\luatexoutputbox
- }%
- \gdef\@EveryShipout@AtNextHook{}%
- \@EveryShipout@Org@Shipout\box\luatexoutputbox
- }}
\DeclareOption{oneside}{\@twosidefalse}
\DeclareOption{twoside}{\@twosidetrue}
\DeclareOption{onecolumn}{\@twocolumnfalse}
@@ -137,6 +126,12 @@
\fi
\DeclareOption{draft}{\setlength\overfullrule{5pt}}
\DeclareOption{final}{\setlength\overfullrule{0pt}}
+\newif\ifptexmin
+\DeclareOption{ptexmin}{\ptexmintrue}%
+\DeclareOption{disablejfam}{}
+\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final,tate}
+\ProcessOptions\relax
+\ifptexmin
\directlua{luatexbase.add_to_callback('luatexja.load_jfm',
function (ji, jn) ji.chars['parbdd'] = 0; return ji end,
'ltj.jclasses_load_jfm', 1)}
@@ -146,10 +141,9 @@
\DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.962216] \ltj@stdgtfont:jfm=min;jfmvar=goth}{}
\ltjglobalsetparameter{differentjfm=both}
\directlua{luatexbase.remove_from_callback('luatexja.load_jfm', 'ltj.jclasses_load_jfm')}
-\DeclareOption{disablejfam}{}
-\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final,tate}
-\ProcessOptions\relax
+\fi
\input{ltjtsize1\@ptsize.clo}
+
\RequirePackage{lltjext}
\def\Cjascale{0.962216}
\if@stysize
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjtbk10.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjtbk10.clo
index ddb2614341b..d1b2d818b47 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltjtbk10.clo
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltjtbk10.clo
@@ -23,7 +23,7 @@
%% File: ltjclasses.dtx
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{ltjtbk10.clo}
- [2020/01/13 v1.8e-ltj-17
+ [2020/07/27 v1.8e-ltj-19
Standard LuaLaTeX-ja file (size option)]
\renewcommand{\normalsize}{%
\@setfontsize\normalsize\@xpt{17}%
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjtbk11.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjtbk11.clo
index 43f937ad894..ff40594149c 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltjtbk11.clo
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltjtbk11.clo
@@ -23,7 +23,7 @@
%% File: ltjclasses.dtx
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{ltjtbk11.clo}
- [2020/01/13 v1.8e-ltj-17
+ [2020/07/27 v1.8e-ltj-19
Standard LuaLaTeX-ja file (size option)]
\renewcommand{\normalsize}{%
\@setfontsize\normalsize\@xipt{17}%
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjtbk12.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjtbk12.clo
index 36357c9428b..f07832ee7cd 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltjtbk12.clo
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltjtbk12.clo
@@ -23,7 +23,7 @@
%% File: ltjclasses.dtx
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{ltjtbk12.clo}
- [2020/01/13 v1.8e-ltj-17
+ [2020/07/27 v1.8e-ltj-19
Standard LuaLaTeX-ja file (size option)]
\renewcommand{\normalsize}{%
\@setfontsize\normalsize\@xiipt{18}%
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjtbook.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjtbook.cls
index 8bf5266fb84..386d2c2342b 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltjtbook.cls
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltjtbook.cls
@@ -23,7 +23,7 @@
%% File: ltjclasses.dtx
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{ltjtbook}
- [2020/01/13 v1.8e-ltj-17
+ [2020/07/27 v1.8e-ltj-19
Standard LuaLaTeX-ja class]
\RequirePackage{luatexja}
\newcounter{@paper}
@@ -105,17 +105,6 @@
\DeclareOption{tate}{%
\tate\AtBeginDocument{\message{《縦組モード》}\adjustbaseline}%
}
-\AtEndOfPackageFile{everyshi}{%
- \def\@EveryShipout@Output{%
- \setbox8\vbox{%
- \yoko
- \@EveryShipout@Hook
- \@EveryShipout@AtNextHook
- \global\setbox\luatexoutputbox=\box\luatexoutputbox
- }%
- \gdef\@EveryShipout@AtNextHook{}%
- \@EveryShipout@Org@Shipout\box\luatexoutputbox
- }}
\DeclareOption{oneside}{\@twosidefalse}
\DeclareOption{twoside}{\@twosidetrue}
\DeclareOption{onecolumn}{\@twocolumnfalse}
@@ -147,6 +136,12 @@
\fi
\DeclareOption{draft}{\setlength\overfullrule{5pt}}
\DeclareOption{final}{\setlength\overfullrule{0pt}}
+\newif\ifptexmin
+\DeclareOption{ptexmin}{\ptexmintrue}%
+\DeclareOption{disablejfam}{}
+\ExecuteOptions{a4paper,10pt,twoside,onecolumn,final,openright,tate}
+\ProcessOptions\relax
+\ifptexmin
\directlua{luatexbase.add_to_callback('luatexja.load_jfm',
function (ji, jn) ji.chars['parbdd'] = 0; return ji end,
'ltj.jclasses_load_jfm', 1)}
@@ -156,10 +151,9 @@
\DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.962216] \ltj@stdgtfont:jfm=min;jfmvar=goth}{}
\ltjglobalsetparameter{differentjfm=both}
\directlua{luatexbase.remove_from_callback('luatexja.load_jfm', 'ltj.jclasses_load_jfm')}
-\DeclareOption{disablejfam}{}
-\ExecuteOptions{a4paper,10pt,twoside,onecolumn,final,openright,tate}
-\ProcessOptions\relax
+\fi
\input{ltjtbk1\@ptsize.clo}
+
\RequirePackage{lltjext}
\def\Cjascale{0.962216}
\if@stysize
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjtreport.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjtreport.cls
index 0db8d980ee5..cd111927050 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltjtreport.cls
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltjtreport.cls
@@ -23,7 +23,7 @@
%% File: ltjclasses.dtx
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{ltjtreport}
- [2020/01/13 v1.8e-ltj-17
+ [2020/07/27 v1.8e-ltj-19
Standard LuaLaTeX-ja class]
\RequirePackage{luatexja}
\newcounter{@paper}
@@ -104,17 +104,6 @@
\DeclareOption{tate}{%
\tate\AtBeginDocument{\message{《縦組モード》}\adjustbaseline}%
}
-\AtEndOfPackageFile{everyshi}{%
- \def\@EveryShipout@Output{%
- \setbox8\vbox{%
- \yoko
- \@EveryShipout@Hook
- \@EveryShipout@AtNextHook
- \global\setbox\luatexoutputbox=\box\luatexoutputbox
- }%
- \gdef\@EveryShipout@AtNextHook{}%
- \@EveryShipout@Org@Shipout\box\luatexoutputbox
- }}
\DeclareOption{oneside}{\@twosidefalse}
\DeclareOption{twoside}{\@twosidetrue}
\DeclareOption{onecolumn}{\@twocolumnfalse}
@@ -145,6 +134,12 @@
\fi
\DeclareOption{draft}{\setlength\overfullrule{5pt}}
\DeclareOption{final}{\setlength\overfullrule{0pt}}
+\newif\ifptexmin
+\DeclareOption{ptexmin}{\ptexmintrue}%
+\DeclareOption{disablejfam}{}
+\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final,openany,tate}
+\ProcessOptions\relax
+\ifptexmin
\directlua{luatexbase.add_to_callback('luatexja.load_jfm',
function (ji, jn) ji.chars['parbdd'] = 0; return ji end,
'ltj.jclasses_load_jfm', 1)}
@@ -154,10 +149,9 @@
\DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.962216] \ltj@stdgtfont:jfm=min;jfmvar=goth}{}
\ltjglobalsetparameter{differentjfm=both}
\directlua{luatexbase.remove_from_callback('luatexja.load_jfm', 'ltj.jclasses_load_jfm')}
-\DeclareOption{disablejfam}{}
-\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final,openany,tate}
-\ProcessOptions\relax
+\fi
\input{ltjtsize1\@ptsize.clo}
+
\RequirePackage{lltjext}
\def\Cjascale{0.962216}
\if@stysize
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjtsize10.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjtsize10.clo
index dbd375aed40..e07c73f0e7e 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltjtsize10.clo
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltjtsize10.clo
@@ -23,7 +23,7 @@
%% File: ltjclasses.dtx
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{ltjtsize10.clo}
- [2020/01/13 v1.8e-ltj-17
+ [2020/07/27 v1.8e-ltj-19
Standard LuaLaTeX-ja file (size option)]
\renewcommand{\normalsize}{%
\@setfontsize\normalsize\@xpt{17}%
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjtsize11.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjtsize11.clo
index 1e9e4543124..8396638d316 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltjtsize11.clo
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltjtsize11.clo
@@ -23,7 +23,7 @@
%% File: ltjclasses.dtx
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{ltjtsize11.clo}
- [2020/01/13 v1.8e-ltj-17
+ [2020/07/27 v1.8e-ltj-19
Standard LuaLaTeX-ja file (size option)]
\renewcommand{\normalsize}{%
\@setfontsize\normalsize\@xipt{17}%
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjtsize12.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjtsize12.clo
index 83c23583cd8..db3bbc4c209 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/ltjtsize12.clo
+++ b/Master/texmf-dist/tex/luatex/luatexja/ltjtsize12.clo
@@ -23,7 +23,7 @@
%% File: ltjclasses.dtx
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{ltjtsize12.clo}
- [2020/01/13 v1.8e-ltj-17
+ [2020/07/27 v1.8e-ltj-19
Standard LuaLaTeX-ja file (size option)]
\renewcommand{\normalsize}{%
\@setfontsize\normalsize\@xiipt{18}%
diff --git a/Master/texmf-dist/tex/luatex/luatexja/luatexja-core.sty b/Master/texmf-dist/tex/luatex/luatexja/luatexja-core.sty
index c8e5449c9bb..4acc74cb327 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/luatexja-core.sty
+++ b/Master/texmf-dist/tex/luatex/luatexja/luatexja-core.sty
@@ -65,7 +65,7 @@
\expandafter\let\csname ifltj@in@latex\expandafter\endcsname
\csname iftrue\endcsname
\NeedsTeXFormat{LaTeX2e}
- \ProvidesPackage{luatexja-core}[2017/11/12 Core of LuaTeX-ja]
+ \ProvidesPackage{luatexja-core}[2020-07-27 Core of LuaTeX-ja]
\fi %</LaTeX>
%% Load prerequisite packages.
@@ -78,8 +78,8 @@
\RequirePackage{ltxcmds} [2011/11/09] % v1.22
\RequirePackage{pdftexcmds} [2011/11/29] % v0.20
\RequirePackage{xkeyval} [2012/10/14] % v2.6b
- \RequirePackage{atbegshi}
\RequirePackage{etoolbox}
+ \RequirePackage{lltjp-atbegshi}
\AtBeginShipoutInit
\IfFileExists{everyhook.sty}{\RequirePackage{everyhook}\ltj@everyhook@availtrue}{}
\else %<*!LaTeX>
@@ -88,7 +88,7 @@
\input ltxcmds.sty
\input pdftexcmds.sty
\input xkeyval
- \input atbegshi.sty
+ \input lltjp-atbegshi.sty
\AtBeginShipoutInit
\fi %</LaTeX>
\endlinechar=-1 %
@@ -426,7 +426,7 @@
\directlua{luatexja.jfmglue.diffmet_rule = math.two_paverage}\or
\directlua{luatexja.jfmglue.diffmet_rule = math.two_add}
\fi
-}{\ltj@PackageError{luatexja}{invalid argument `#1' for `differentjfm'}{%
+}{\@PackageError{luatexja}{invalid argument `#1' for `differentjfm'}{%
Argument for `differentjfm' must be one of `large', `small', `average',^^J%
`pleft', `pright', 'paverage' or `both'. }}
% large, small, average, pleft, pright, paverage, both
diff --git a/Master/texmf-dist/tex/luatex/luatexja/luatexja.lua b/Master/texmf-dist/tex/luatex/luatexja/luatexja.lua
index 1b3bd81612b..988f51955e4 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/luatexja.lua
+++ b/Master/texmf-dist/tex/luatex/luatexja/luatexja.lua
@@ -1,40 +1,30 @@
-
-require('lualibs')
-
+require 'lualibs'
------------------------------------------------------------------------
local function load_lua(fn)
local found = kpse.find_file(fn, 'tex')
if not found then
tex.error("LuaTeX-ja error: File `" .. fn .. "' not found")
else
- texio.write_nl('(' .. found .. ')')
- dofile(found)
+ texio.write_nl('(' .. found .. ')'); dofile(found)
end
end
luatexja.load_lua = load_lua
-function luatexja.load_module(name)
- require('ltj-' .. name.. '.lua')
-end
+function luatexja.load_module(name) require('ltj-' .. name.. '.lua') end
do
- local setfield = node.direct.setfield
- luatexja.setglue = node.direct.setglue or
- function(g,w,st,sh,sto,sho)
- setfield(g,'width', w or 0)
- setfield(g,'stretch',st or 0)
- setfield(g,'shrink', sh or 0)
- setfield(g,'stretch_order',sto or 0)
- setfield(g,'shrink_order', sho or 0)
- end
- local getfield = node.direct.getfield
- luatexja.getglue = node.direct.getglue or
- function(g)
- return getfield(g,'width'),
- getfield(g,'stretch'),
- getfield(g,'shrink'),
- getfield(g,'stretch_order'),
- getfield(g,'shrink_order')
- end
+ local setfield = node.direct.setfield
+ luatexja.setglue = node.direct.setglue or
+ function(g,w,st,sh,sto,sho)
+ setfield(g,'width', w or 0); setfield(g,'stretch',st or 0); setfield(g,'shrink', sh or 0)
+ setfield(g,'stretch_order',sto or 0)
+ setfield(g,'shrink_order', sho or 0)
+ end
+ local getfield = node.direct.getfield
+ luatexja.getglue = node.direct.getglue or
+ function(g)
+ return getfield(g,'width'), getfield(g,'stretch'), getfield(g,'shrink'),
+ getfield(g,'stretch_order'), getfield(g,'shrink_order')
+ end
end
--- 以下は全ファイルで共有される定数
@@ -44,8 +34,6 @@ icflag_table.ITALIC = 1
icflag_table.PACKED = 2
icflag_table.KINSOKU = 3
icflag_table.FROM_JFM = 4
--- FROM_JFM: 4, 5, 6, 7, 8 →優先度高(伸びやすく,縮みやすい)
--- 6 が標準
icflag_table.KANJI_SKIP = 68 -- = 4+64
icflag_table.KANJI_SKIP_JFM = 69
icflag_table.XKANJI_SKIP = 70
@@ -56,30 +44,30 @@ icflag_table.IC_PROCESSED = 74
icflag_table.BOXBDD = 75
icflag_table.PROCESSED_BEGIN_FLAG = 4096 -- sufficiently large power of 2
-local stack_table_index = {}
-luatexja.stack_table_index = stack_table_index
-stack_table_index.PRE = 0x200000 -- characterごと
-stack_table_index.POST = 0x400000 -- characterごと
-stack_table_index.KCAT = 0x600000 -- characterごと
-stack_table_index.XSP = 0x800000 -- characterごと
-stack_table_index.RIPRE = 0xA00000 -- characterごと,ruby pre
-stack_table_index.RIPOST = 0xC00000 -- characterごと,ruby post
-stack_table_index.JWP = 0 -- これだけ
-stack_table_index.KSK = 1 -- これだけ
-stack_table_index.XSK = 2 -- これだけ
-stack_table_index.MJT = 0x100 -- 0--255
-stack_table_index.MJS = 0x200 -- 0--255
-stack_table_index.MJSS = 0x300 -- 0--255
-stack_table_index.KSJ = 0x400 -- 0--9
-
-local userid_table = {}
-luatexja.userid_table = userid_table
-userid_table.IHB = luatexbase.newuserwhatsitid('inhibitglue', 'luatexja') -- \inhibitglue
-userid_table.STCK = luatexbase.newuserwhatsitid('stack_marker', 'luatexja') -- スタック管理
-userid_table.BPAR = luatexbase.newuserwhatsitid('begin_par', 'luatexja') -- 「段落始め」
-userid_table.DIR = luatexbase.newuserwhatsitid('direction', 'luatexja') -- 組方向
-userid_table.BOXB = luatexbase.newuserwhatsitid('box_boundary', 'luatexja') -- 「ボックス始め・終わり」
-userid_table.JA_AL_BDD = luatexbase.newuserwhatsitid('ja_al_boundary', 'luatexja')
+local stack_ind = {}
+luatexja.stack_table_index = stack_ind
+stack_ind.PRE = 0x200000 -- characterごと
+stack_ind.POST = 0x400000 -- characterごと
+stack_ind.KCAT = 0x600000 -- characterごと
+stack_ind.XSP = 0x800000 -- characterごと
+stack_ind.RIPRE = 0xA00000 -- characterごと,ruby pre
+stack_ind.RIPOST = 0xC00000 -- characterごと,ruby post
+stack_ind.JWP = 0 -- これだけ
+stack_ind.KSK = 1 -- これだけ
+stack_ind.XSK = 2 -- これだけ
+stack_ind.MJT = 0x100 -- 0--255
+stack_ind.MJS = 0x200 -- 0--255
+stack_ind.MJSS = 0x300 -- 0--255
+stack_ind.KSJ = 0x400 -- 0--9
+
+local uid_table = {}
+luatexja.userid_table = uid_table
+uid_table.IHB = luatexbase.newuserwhatsitid('inhibitglue', 'luatexja') -- \inhibitglue
+uid_table.STCK = luatexbase.newuserwhatsitid('stack_marker', 'luatexja') -- スタック管理
+uid_table.BPAR = luatexbase.newuserwhatsitid('begin_par', 'luatexja') -- 「段落始め」
+uid_table.DIR = luatexbase.newuserwhatsitid('direction', 'luatexja') -- 組方向
+uid_table.BOXB = luatexbase.newuserwhatsitid('box_boundary', 'luatexja') -- 「ボックス始め・終わり」
+uid_table.JA_AL_BDD = luatexbase.newuserwhatsitid('ja_al_boundary', 'luatexja')
local dir_table = {}
luatexja.dir_table = dir_table
@@ -90,28 +78,25 @@ dir_table.dir_math_mod = 8
dir_table.dir_node_auto = 128 -- 組方向を合わせるために自動で作られたもの
dir_table.dir_node_manual = 256 -- 寸法代入によって作られたもの
dir_table.dir_utod = dir_table.dir_tate + dir_table.dir_math_mod
- -- 「縦数式ディレクション」 in pTeX
+ -- 「縦数式ディレクション」 in pTeX
--- 定義終わり
local load_module = luatexja.load_module
-load_module('base'); local ltjb = luatexja.base
-load_module('rmlgbm'); local ltjr = luatexja.rmlgbm -- must be 1st
-
+load_module 'base'; local ltjb = luatexja.base
+load_module 'rmlgbm'; local ltjr = luatexja.rmlgbm -- must be 1st
if luatexja_debug then load_module('debug') end
-
-load_module('lotf_aux'); local ltju = luatexja.lotf_aux
-load_module('charrange'); local ltjc = luatexja.charrange
-load_module('stack'); local ltjs = luatexja.stack
-load_module('direction'); local ltjd = luatexja.direction -- +1 hlist +1 attr_list
-load_module('lineskip'); local ltjl = luatexja.lineskip -- +1 hlist +1 attr_list
-load_module('jfont'); local ltjf = luatexja.jfont
-load_module('inputbuf'); local ltji = luatexja.inputbuf
-load_module('pretreat'); local ltjp = luatexja.pretreat
-load_module('setwidth'); local ltjw = luatexja.setwidth
-load_module('jfmglue'); local ltjj = luatexja.jfmglue -- +1 glue +1 gs +1 attr_list
-load_module('math'); local ltjm = luatexja.math
-load_module('base'); local ltjb = luatexja.base
-
+load_module 'lotf_aux'; local ltju = luatexja.lotf_aux
+load_module 'charrange'; local ltjc = luatexja.charrange
+load_module 'stack'; local ltjs = luatexja.stack
+load_module 'direction'; local ltjd = luatexja.direction -- +1 hlist +1 attr_list
+load_module 'lineskip'; local ltjl = luatexja.lineskip -- +1 hlist +1 attr_list
+load_module 'jfont'; local ltjf = luatexja.jfont
+load_module 'inputbuf'; local ltji = luatexja.inputbuf
+load_module 'pretreat'; local ltjp = luatexja.pretreat
+load_module 'setwidth'; local ltjw = luatexja.setwidth
+load_module 'jfmglue'; local ltjj = luatexja.jfmglue -- +1 glue +1 gs +1 attr_list
+load_module 'math'; local ltjm = luatexja.math
+load_module 'base'; local ltjb = luatexja.base
local attr_jchar_class = luatexbase.attributes['ltj@charclass']
local attr_jchar_code = luatexbase.attributes['ltj@charcode']
@@ -122,24 +107,18 @@ local attr_uniqid = luatexbase.attributes['ltj@uniqid']
local attr_dir = luatexbase.attributes['ltj@dir']
local cat_lp = luatexbase.catcodetables['latex-package']
--- Three aux. functions, bollowed from tex.web
+-- Three aux. functions, borrowed from tex.web
-local unity=65536
local floor = math.floor
-
local function print_scaled(s)
- local out=''
- local delta=10
- if s<0 then
- out=out..'-'; s=-s
- end
- out=out..tostring(floor(s/unity)) .. '.'
- s=10*(s%unity)+5
+ local out, delta = '', 10
+ if s<0 then s, out = -s, out..'-' end
+ out=out..tostring(floor(s/65536)) .. '.'
+ s=10*(s%65536)+5
repeat
- if delta>unity then s=s+32768-50000 end
- out=out .. tostring(floor(s/unity))
- s=10*(s%unity)
- delta=delta*10
+ if delta>65536 then s=s+32768-50000 end
+ out=out .. tostring(floor(s/65536))
+ s=10*(s%65536); delta=delta*10
until s<=delta
return out
end
@@ -149,11 +128,8 @@ local function print_glue(d,order)
local out=print_scaled(d)
if order>0 then
out=out..'fi'
- while order>1 do
- out=out..'l'; order=order-1
- end
- else
- out=out..'pt'
+ while order>1 do out=out..'l'; order=order-1 end
+ else out=out..'pt'
end
return out
end
@@ -178,55 +154,55 @@ end
do
local tex_getattr = tex.getattribute
local function getattr(a)
- local r = tex.getattribute(a)
+ local r = tex_getattr(a)
return (r==-0x7FFFFFFF) and 0 or r
end
luatexja.unary_pars = {
yalbaselineshift = function(t)
- return print_scaled(getattr('ltj@yablshift'))..'pt'
+ return print_scaled(getattr('ltj@yablshift'))..'pt'
end,
yjabaselineshift = function(t)
- return print_scaled(getattr('ltj@ykblshift'))..'pt'
+ return print_scaled(getattr('ltj@ykblshift'))..'pt'
end,
talbaselineshift = function(t)
- return print_scaled(getattr('ltj@tablshift'))..'pt'
+ return print_scaled(getattr('ltj@tablshift'))..'pt'
end,
tjabaselineshift = function(t)
- return print_scaled(getattr('ltj@tkblshift'))..'pt'
+ return print_scaled(getattr('ltj@tkblshift'))..'pt'
end,
kanjiskip = function(t)
- return print_spec(ltjs.get_stack_skip(stack_table_index.KSK, t))
+ return print_spec(ltjs.get_stack_skip(stack_ind.KSK, t))
end,
xkanjiskip = function(t)
- return print_spec(ltjs.get_stack_skip(stack_table_index.XSK, t))
+ return print_spec(ltjs.get_stack_skip(stack_ind.XSK, t))
end,
jcharwidowpenalty = function(t)
- return ltjs.get_stack_table(stack_table_index.JWP, 0, t)
+ return ltjs.get_stack_table(stack_ind.JWP, 0, t)
end,
autospacing = function(t)
- return getattr('ltj@autospc')
+ return getattr('ltj@autospc')
end,
autoxspacing = function(t)
- return getattr('ltj@autoxspc')
+ return getattr('ltj@autoxspc')
end,
differentjfm = function(t)
- local f, r = luatexja.jfmglue.diffmet_rule, '???'
- if f == math.max then r = 'large'
- elseif f == math.min then r = 'small'
- elseif f == math.two_average then r = 'average'
- elseif f == math.two_paverage then r = 'paverage'
- elseif f == math.two_pleft then r = 'pleft'
- elseif f == math.two_pright then r = 'pright'
- elseif f == math.two_add then r = 'both'
- end
- return r
+ local f, r = luatexja.jfmglue.diffmet_rule, '???'
+ if f == math.max then r = 'large'
+ elseif f == math.min then r = 'small'
+ elseif f == math.two_average then r = 'average'
+ elseif f == math.two_paverage then r = 'paverage'
+ elseif f == math.two_pleft then r = 'pleft'
+ elseif f == math.two_pright then r = 'pright'
+ elseif f == math.two_add then r = 'both'
+ end
+ return r
end,
direction = function()
- local v = ltjd.get_dir_count()
- if math.abs(tex.nest[tex.nest.ptr].mode) == ltjs.mmode and v == dir_table.dir_tate then
- v = dir_table.dir_utod
- end
- return v
+ local v = ltjd.get_dir_count()
+ if math.abs(tex.nest[tex.nest.ptr].mode) == ltjs.mmode and v == dir_table.dir_tate then
+ v = dir_table.dir_utod
+ end
+ return v
end,
adjustdir = ltjd.get_adjust_dir_count,
}
@@ -236,7 +212,7 @@ do
function luatexja.ext_get_parameter_unary()
local k= scan_arg()
if unary_pars[k] then
- tex.write(tostring(unary_pars[k](tex.getcount('ltj@@stack'))))
+ tex.write(tostring(unary_pars[k](tex.getcount('ltj@@stack'))))
end
ltjb.stop_time_measure('get_par')
end
@@ -247,44 +223,40 @@ end
do
luatexja.binary_pars = {
jacharrange = function(c, t)
- if type(c)~='number' or c<-1 or c>31*ltjc.ATTR_RANGE then
- -- 0, -1 はエラーにしない(隠し)
- ltjb.package_error('luatexja',
- 'invalid character range number (' .. tostring(c) .. ')',
- 'A character range number should be in the range 1..'
- .. 31*ltjc.ATTR_RANGE .. ",\n"..
- 'So I changed this one to ' .. 31*ltjc.ATTR_RANGE .. ".")
- c=0 -- external range 217 == internal range 0
- elseif c==31*ltjc.ATTR_RANGE then c=0
- end
+ if type(c)~='number' or c<-1 or c>31*ltjc.ATTR_RANGE then
+ -- 0, -1 はエラーにしない(隠し)
+ ltjb.package_error('luatexja',
+ 'invalid character range number (' .. tostring(c) .. ')',
+ 'A character range number should be in the range 1..'
+ .. 31*ltjc.ATTR_RANGE .. ",\n"..
+ 'So I changed this one to ' .. 31*ltjc.ATTR_RANGE .. ".")
+ c=0 -- external range 217 == internal range 0
+ elseif c==31*ltjc.ATTR_RANGE then c=0
+ end
-- 負の値は <U+0080 の文字の文字範囲,として出てくる.この時はいつも欧文文字なので 1 を返す
- return (c<0) and 1 or ltjc.get_range_setting(c)
+ return (c<0) and 1 or ltjc.get_range_setting(c)
end,
prebreakpenalty = function(c, t)
- return ltjs.get_stack_table(stack_table_index.PRE
- + ltjb.in_unicode(c, true), 0, t)
+ return ltjs.get_stack_table(stack_ind.PRE + ltjb.in_unicode(c, true), 0, t)
end,
postbreakpenalty = function(c, t)
- return ltjs.get_stack_table(stack_table_index.POST
- + ltjb.in_unicode(c, true), 0, t)
+ return ltjs.get_stack_table(stack_ind.POST + ltjb.in_unicode(c, true), 0, t)
end,
kcatcode = function(c, t)
- return ltjs.get_stack_table(stack_table_index.KCAT
- + ltjb.in_unicode(c, false), 0, t)
+ return ltjs.get_stack_table(stack_ind.KCAT + ltjb.in_unicode(c, false), 0, t)
end,
chartorange = function(c, t)
- return ltjc.char_to_range(ltjb.in_unicode(c, false))
+ return ltjc.char_to_range(ltjb.in_unicode(c, false))
end,
jaxspmode = function(c, t)
- return ltjs.get_stack_table(stack_table_index.XSP
- + ltjb.in_unicode(c, true), 3, t)
+ return ltjs.get_stack_table(stack_ind.XSP + ltjb.in_unicode(c, true), 3, t)
end,
boxdir = function(c, t)
- if type(c)~='number' or c<0 or c>65535 then
+ if type(c)~='number' or c<0 or c>65535 then
ltjb.package_error('luatexja',
'Bad register code (' .. tostring(c) .. ')',
'A register must be between 0 and 65535.\n'..
- 'I changed this one to zero.')
+ 'I changed this one to zero.')
c=0
end
return ltjd.get_register_dir(c)
@@ -295,7 +267,7 @@ do
binary_pars.alxspmode = binary_pars.jaxspmode
function luatexja.ext_get_parameter_binary(k, c)
if binary_pars[k] then
- tex.write(tostring(binary_pars[k](c,tex.getcount('ltj@@stack'))))
+ tex.write(tostring(binary_pars[k](c,tex.getcount('ltj@@stack'))))
end
ltjb.stop_time_measure('get_par')
end
@@ -321,11 +293,10 @@ do
ensure_tex_attr(attr_icflag, 0)
if gc == 'fin_row' then return head
else
- --luatexja.ext_show_node_list(head, 'T> ', print)
- start_time_measure('jfmglue')
- local p = ltjj.main(to_direct(head),mode, dir)
- stop_time_measure('jfmglue')
- return to_node(p)
+ start_time_measure('jfmglue')
+ local p = ltjj.main(to_direct(head),mode, dir)
+ stop_time_measure('jfmglue')
+ return to_node(p)
end
end
@@ -340,27 +311,24 @@ do
ltjb.add_to_callback(
'pre_linebreak_filter',
function (head,groupcode)
- return main_process(head, true, tex.textdir, groupcode)
+ return main_process(head, true, tex.textdir, groupcode)
end,'ltj.main',
luatexbase.priority_in_callback('pre_linebreak_filter', 'luaotfload.node_processor')+1)
ltjb.add_to_callback(
'hpack_filter',
function (head,groupcode,size,packtype, dir)
- return main_process(head, false, dir, groupcode)
+ return main_process(head, false, dir, groupcode)
end,'ltj.main',
luatexbase.priority_in_callback('hpack_filter', 'luaotfload.node_processor')+1)
ltjb.add_to_callback('pre_linebreak_filter', adjust_icflag, 'ltj.adjust_icflag', 1)
ltjb.add_to_callback('hpack_filter', adjust_icflag, 'ltj.adjust_icflag', 1)
-
end
-- cleanup process
function luatexja.ext_cleanup()
- ltjf.cleanup_size_cache()
- ltjd.remove_end_whatsit()
+ ltjf.cleanup_size_cache(); ltjd.remove_end_whatsit()
end
-
-- lastnodechar
do
local id_glyph = node.id('glyph')
@@ -368,12 +336,12 @@ do
local n = tex.nest[tex.nest.ptr].tail
local r = '-1'
if n then
- if n.id==id_glyph then
- while n.componetns and n.subtype and n.subtype%4 >= 2 do
- n = node.tail(n)
- end
- r = tostring(n.char)
- end
+ if n.id==id_glyph then
+ while n.componetns and n.subtype and n.subtype%4 >= 2 do
+ n = node.tail(n)
+ end
+ r = tostring(n.char)
+ end
end
tex.sprint(r)
end
@@ -398,24 +366,20 @@ local id_math = node.id('math')
local id_whatsit = node.id('whatsit')
local sid_user = node.subtype('user_defined')
-local function get_attr_icflag(p)
- return (has_attr(p, attr_icflag) or 0) % icflag_table.PROCESSED_BEGIN_FLAG
-end
-
local prefix, inner_depth
local utfchar = utf.char
local function debug_show_node_X(p,print_fn, limit, inner_depth)
local k = prefix
local s
- local pt=node_type(p.id)
- local base = prefix .. string.format('%X', get_attr_icflag(p))
+ local pt, pic = node_type(p.id), (has_attr(p, attr_icflag) or 0) % icflag_table.PROCESSED_BEGIN_FLAG
+ local base = prefix .. string.format('%X', pic)
.. ' ' .. pt .. ' ' .. tostring(p.subtype) .. ' '
if pt == 'glyph' then
- s = base .. ' ' ..
- (p.char<0xF0000 and utfchar(p.char) or '')
- .. string.format(' (U+%X) ', p.char)
- .. tostring(p.font) .. ' (' .. print_scaled(p.height) .. '+'
- .. print_scaled(p.depth) .. ')x' .. print_scaled(p.width)
+ s = base .. ' '
+ .. (p.char<0xF0000 and utfchar(p.char) or '')
+ .. string.format(' (U+%X) ', p.char)
+ .. tostring(p.font) .. ' (' .. print_scaled(p.height) .. '+'
+ .. print_scaled(p.depth) .. ')x' .. print_scaled(p.width)
if p.xoffset~=0 or p.yoffset~=0 then
s = s .. ' off: (' .. print_scaled(p.xoffset)
.. ',' .. print_scaled(p.yoffset) .. ')'
@@ -423,13 +387,13 @@ local function debug_show_node_X(p,print_fn, limit, inner_depth)
print_fn(s)
elseif pt=='hlist' or pt=='vlist' or pt=='unset'or pt=='ins' then
if pt=='ins' then
- s = base .. '(' .. print_scaled(p.height) .. '+'
- .. print_scaled(p.depth) .. ')'
- .. ', dir=' .. tostring(node.has_attribute(p, attr_dir))
+ s = base .. '(' .. print_scaled(p.height) .. '+'
+ .. print_scaled(p.depth) .. ')'
+ .. ', dir=' .. tostring(node.has_attribute(p, attr_dir))
else
- s = base .. '(' .. print_scaled(p.height) .. '+'
- .. print_scaled(p.depth) .. ')x' .. print_scaled(p.width)
- .. ', dir=' .. tostring(node.has_attribute(p, attr_dir))
+ s = base .. '(' .. print_scaled(p.height) .. '+'
+ .. print_scaled(p.depth) .. ')x' .. print_scaled(p.width)
+ .. ', dir=' .. tostring(node.has_attribute(p, attr_dir))
end
if (p.shift or 0)~=0 then
s = s .. ', shifted ' .. print_scaled(p.shift)
@@ -438,125 +402,116 @@ local function debug_show_node_X(p,print_fn, limit, inner_depth)
s = s .. ' glue set '
if p.glue_sign == 2 then s = s .. '-' end
s = s .. tostring(floor(p.glue_set*10000)/10000)
- if p.glue_order == 0 then
- s = s .. 'pt'
+ if p.glue_order == 0 then s = s .. 'pt'
else
s = s .. 'fi'
- for i = 2, p.glue_order do s = s .. 'l' end
+ for i = 2, p.glue_order do s = s .. 'l' end
end
end
- if get_attr_icflag(p) == icflag_table.PACKED then
- s = s .. ' (packed)'
- end
+ if pic == icflag_table.PACKED then s = s .. ' (packed)' end
print_fn(s);
local bid = inner_depth
prefix, inner_depth = prefix.. '.', inner_depth + 1
if inner_depth < limit then
- for q in node.traverse(p.head) do
- debug_show_node_X(q, print_fn, limit, inner_depth)
- end
+ for q in node.traverse(p.head) do
+ debug_show_node_X(q, print_fn, limit, inner_depth)
+ end
end
prefix=k
elseif pt=='rule' then
s = base .. '(' .. print_scaled(p.height) .. '+'
.. print_scaled(p.depth) .. ')x' .. print_scaled(p.width)
- .. ', dir=' .. tostring(node.has_attribute(p, attr_dir))
+ .. ', dir=' .. tostring(node.has_attribute(p, attr_dir))
print_fn(s)
elseif pt=='disc' then
print_fn(s)
local bid = inner_depth
if inner_depth < limit then
prefix, inner_depth = k.. 'p.', inner_depth + 1
- for q in node.traverse(p.pre) do
- debug_show_node_X(q, print_fn, limit, inner_depth)
- end
+ for q in node.traverse(p.pre) do
+ debug_show_node_X(q, print_fn, limit, inner_depth)
+ end
prefix = k.. 'P.'
- for q in node.traverse(p.post) do
- debug_show_node_X(q, print_fn, limit, inner_depth)
- end
+ for q in node.traverse(p.post) do
+ debug_show_node_X(q, print_fn, limit, inner_depth)
+ end
prefix = k.. 'R.'
- for q in node.traverse(p.replace) do
- debug_show_node_X(q, print_fn, limit, inner_depth)
- end
+ for q in node.traverse(p.replace) do
+ debug_show_node_X(q, print_fn, limit, inner_depth)
+ end
end
prefix=k
elseif pt == 'glue' then
s = base .. ' ' .. print_spec(p)
- if get_attr_icflag(p)>icflag_table.KINSOKU
- and get_attr_icflag(p)<icflag_table.KANJI_SKIP then
- s = s .. ' (from JFM: priority ' .. get_attr_icflag(p)-icflag_table.FROM_JFM .. ')'
- elseif get_attr_icflag(p)==icflag_table.KANJI_SKIP then
- s = s .. ' (kanjiskip)'
- elseif get_attr_icflag(p)==icflag_table.KANJI_SKIP_JFM then
- s = s .. ' (kanjiskip, JFM specified)'
- elseif get_attr_icflag(p)==icflag_table.XKANJI_SKIP then
- s = s .. ' (xkanjiskip)'
- elseif get_attr_icflag(p)==icflag_table.XKANJI_SKIP_JFM then
- s = s .. ' (xkanjiskip, JFM specified)'
+ if pic>icflag_table.KINSOKU and pic<icflag_table.KANJI_SKIP then
+ s = s .. ' (from JFM: priority ' .. pic-icflag_table.FROM_JFM .. ')'
+ elseif pic==icflag_table.KANJI_SKIP then
+ s = s .. ' (kanjiskip)'
+ elseif pic==icflag_table.KANJI_SKIP_JFM then
+ s = s .. ' (kanjiskip, JFM specified)'
+ elseif pic==icflag_table.XKANJI_SKIP then
+ s = s .. ' (xkanjiskip)'
+ elseif pic==icflag_table.XKANJI_SKIP_JFM then
+ s = s .. ' (xkanjiskip, JFM specified)'
end
print_fn(s)
elseif pt == 'kern' then
s = base .. ' ' .. print_scaled(p.kern) .. 'pt'
if p.subtype==2 then
- s = s .. ' (for accent)'
- elseif get_attr_icflag(p)==icflag_table.IC_PROCESSED then
- s = s .. ' (italic correction)'
- elseif get_attr_icflag(p)==icflag_table.LINEEND then
- s = s .. ' (end-of-line)'
- -- elseif get_attr_icflag(p)==ITALIC then
- -- s = s .. ' (italic correction)'
- elseif get_attr_icflag(p)>icflag_table.KINSOKU
- and get_attr_icflag(p)<icflag_table.KANJI_SKIP then
- s = s .. ' (from JFM: priority ' .. get_attr_icflag(p)-icflag_table.FROM_JFM .. ')'
+ s = s .. ' (for accent)'
+ elseif pic==icflag_table.IC_PROCESSED then
+ s = s .. ' (italic correction)'
+ elseif pic==icflag_table.LINEEND then
+ s = s .. ' (end-of-line)'
+ elseif pic>icflag_table.KINSOKU
+ and pic<icflag_table.KANJI_SKIP then
+ s = s .. ' (from JFM: priority ' .. pic-icflag_table.FROM_JFM .. ')'
end
print_fn(s)
elseif pt == 'penalty' then
s = base .. ' ' .. tostring(p.penalty)
- if get_attr_icflag(p)==icflag_table.KINSOKU then
- s = s .. ' (for kinsoku)'
- end
+ if pic==icflag_table.KINSOKU then s = s .. ' (for kinsoku)' end
print_fn(s)
elseif pt == 'dir' then
- s = base .. ' ' .. tostring(p.dir) .. ' (level ' .. tostring(p.level) .. ')'
- print_fn(s)
+ print_fn(base .. ' ' .. tostring(p.dir) .. ' (level ' .. tostring(p.level) .. ')')
elseif pt == 'whatsit' then
s = base
if p.subtype==sid_user then
- local t = tostring(p.user_id) .. ' (' ..
- luatexbase.get_user_whatsit_name(p.user_id) .. ') '
+ local t = tostring(p.user_id) .. ' (' ..
+ luatexbase.get_user_whatsit_name(p.user_id) .. ') '
if p.type ~= 110 then
s = s .. ' userid:' .. t .. p.value
print_fn(s)
else
s = s .. ' userid:' .. t .. '(node list)'
- if p.user_id==userid_table.DIR then
- s = s .. ' dir: ' .. tostring(node.has_attribute(p, attr_dir))
- end
+ if p.user_id==uid_table.DIR then
+ s = s .. ' dir: ' .. tostring(node.has_attribute(p, attr_dir))
+ end
print_fn(s)
- local bid = inner_depth
- prefix, inner_depth =prefix.. '.', inner_depth + 1
+ local bid = inner_depth
+ prefix, inner_depth = prefix.. '.', inner_depth + 1
if inner_depth < limit then
- for q in node.traverse(p.value) do
- debug_show_node_X(q, print_fn, limit, inner_depth)
- end
- end
+ for q in node.traverse(p.value) do
+ debug_show_node_X(q, print_fn, limit, inner_depth)
+ end
+ end
prefix, inner_depth = k, bid
end
else
s = s .. (node.subtype(p.subtype) or '')
- if p.subtype==1 then
- s = s .. ' stream=' .. p.stream
- print_fn(s)
- for i=1,#p.data do
- print_fn(s .. ' [' .. i .. '] = ' .. tostring(p.data[i].csname))
- end
- else
- print_fn(s)
- end
+ if p.subtype==1 then
+ s = s .. ' stream=' .. p.stream
+ print_fn(s)
+ for i=1,#p.data do
+ print_fn(s .. ' [' .. i .. '] = ' .. tostring(p.data[i].csname))
+ end
+ else
+ print_fn(s)
+ end
end
-------- math node --------
elseif pt=='noad' then
- s = base ; print_fn(s)
+ print_fn(base)
if p.nucleus then
prefix = k .. 'N'; debug_show_node_X(p.nucleus, print_fn, limit, inner_depth);
end
@@ -574,9 +529,9 @@ local function debug_show_node_X(p,print_fn, limit, inner_depth)
print_fn(base)
if p.head then
prefix = k .. '.';
- for q in node.traverse(p.head) do
- debug_show_node_X(q, print_fn, limit, inner_depth)
- end
+ for q in node.traverse(p.head) do
+ debug_show_node_X(q, print_fn, limit, inner_depth)
+ end
end
else
print_fn(base)
diff --git a/Master/texmf-dist/tex/luatex/luatexja/luatexja.sty b/Master/texmf-dist/tex/luatex/luatexja/luatexja.sty
index da8ecf7c89d..d51b575f762 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/luatexja.sty
+++ b/Master/texmf-dist/tex/luatex/luatexja/luatexja.sty
@@ -35,13 +35,13 @@
\expandafter\let\csname ifltj@in@latex\expandafter\endcsname
\csname iftrue\endcsname
\NeedsTeXFormat{LaTeX2e}
- \ProvidesPackage{luatexja}[2020-04-12 Japanese Typesetting with Lua(La)TeX]
+ \ProvidesPackage{luatexja}[2020-08-02 Japanese Typesetting with Lua(La)TeX]
\DeclareOption{disablejfam}{\ltj@disablejfamtrue}
\DeclareOption*{}
\ProcessOptions\relax
\fi %</LaTeX>
%%%% VERSION
-\def\LuaTeXjaversion{20200518.0}
+\def\LuaTeXjaversion{20200802.0}
\directlua{require('ltj-unicode-ccfix.lua')}% catcode of ideographs
diff --git a/Master/texmf-dist/tex/luatex/luatexja/patches/lltjdefs.sty b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjdefs.sty
index 29f38b367ad..e0dba375471 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/patches/lltjdefs.sty
+++ b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjdefs.sty
@@ -101,15 +101,15 @@
\def\@ltj@hook@family#1#2{ % #1: csname #2: contents
\ifcsname @#1hook\endcsname % LaTeX 2020-02-02
- \csappto{@#1hook}{#2}%
+ \csappto{@#1hook}{#2}%
\else % LaTeX 2019-10-01
- \ifcsname #1 \endcsname
- \expandafter\patchcmd\csname #1 \endcsname{\selectfont}{#2\selectfont}{}{}%
- \else
- \PackageWarningNoLine{luatexja}{%
- Patching to \expandafter\string\csname #1\endcsname\space failed%
- }%
- \fi
+ \ifcsname #1 \endcsname
+ \expandafter\patchcmd\csname #1 \endcsname{\selectfont}{#2\selectfont}{}{}%
+ \else
+ \PackageWarningNoLine{luatexja}{%
+ Patching to \expandafter\string\csname #1\endcsname\space failed%
+ }%
+ \fi
\fi
}
\@ltj@hook@family{rmfamily}{%
diff --git a/Master/texmf-dist/tex/luatex/luatexja/patches/lltjfont.sty b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjfont.sty
index 9be20e440c6..3578a84396c 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/patches/lltjfont.sty
+++ b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjfont.sty
@@ -287,16 +287,16 @@
\every@math@size{}%
\fontsize{#6}\z@
\ltj@@is@kyenc{#2}\ifin@%
- \ltjselectfont@force@definetrue
+ \ltjselectfont@force@definetrue
\usekanji{#2}{#3}{#4}{#5}%
\global\let#1\getjfont
- \ltjselectfont@force@definefalse
+ \ltjselectfont@force@definefalse
\else
\ltj@@is@ktenc{#2}\ifin@%
- \ltjselectfont@force@definetrue
+ \ltjselectfont@force@definetrue
\usekanji{#2}{#3}{#4}{#5}%
\global\let#1\gettfont
- \ltjselectfont@force@definefalse
+ \ltjselectfont@force@definefalse
\else
\useroman{#2}{#3}{#4}{#5}%
\global\expandafter\let\expandafter#1\the\font
@@ -379,7 +379,7 @@
\xdef\font@name{\csname\curr@kfontshape/\f@size\endcsname}%
\pickup@jfont
\unless\ifnum\ltjgetparameter{direction}=3 \font@name
- \ltj@@does@alt@set{\curr@kfontshape}{%
+ \ltj@@does@alt@set{\curr@kfontshape}{%
% alt fonts の定義
\directlua{luatexja.jfont.output_alt_font_cmd('y', '\luatexluaescapestring{\curr@kfontshape}')}%
% 定義した alt fonts のデータを \ltjdeclarealtfont に渡すのと同等の処理をする
@@ -432,14 +432,14 @@
\bgroup
\def\ltj@@dir@patch#1#2#3{%
\global\csletcs{ltj@@orig@#1}{#1}%
- \protected\expandafter\xdef\csname #1\endcsname{%
- \csname ltj@@orig@#1\endcsname
+ \protected\expandafter\xdef\csname #1\endcsname{%
+ \csname ltj@@orig@#1\endcsname
\unexpanded{\ifnum#3<\z@\let\ltj@@protect\protect\set@typeset@protect}%
\unexpanded{\global\let\ltj@afont@name=\font@name}%
- \expandonce{\csname ltj@selectfont@#2\endcsname}%
+ \expandonce{\csname ltj@selectfont@#2\endcsname}%
\unexpanded{\global\let\font@name=\ltj@afont@name}%
\unexpanded{\let\protect\ltj@@protect\fi}%
- }%
+ }%
}
\ltj@@dir@patch{yoko}{yoko}{\ltj@curjfnt}
\ltj@@dir@patch{tate}{tate}{\ltj@curtfnt}
@@ -601,7 +601,7 @@
\else
\@tempswafalse
\def\cdp@elt##1{\ifcsname ##1+#1\endcsname%
- \@tempswatrue\def\cdp@elt####1\relax{}%
+ \@tempswatrue\def\cdp@elt####1\relax{}%
\fi}%
\directlua{luatexja.jfont.search_ffam_declared()}\relax%
\if@tempswz
@@ -659,8 +659,8 @@
}
\else % !!! pl 3, 4
\def\set@target@series@kanji#1{%
- \edef\k@series{#1}%
- \edef\k@series{\expandafter\series@drop@one@m\k@series mm\series@drop@one@m}%
+ \edef\k@series{#1}%
+ \edef\k@series{\expandafter\series@drop@one@m\k@series mm\series@drop@one@m}%
}
\fi\fi
@@ -670,7 +670,7 @@
\set@target@series@kanji{#2}%
\else
\begingroup\let\f@encoding\k@encoding\let\f@family\k@family
- \maybe@load@fontshape\endgroup
+ \maybe@load@fontshape\endgroup
\edef\reserved@a{\k@encoding /\k@family /#1/\k@shape}%
\ifcsname \reserved@a \endcsname
\set@target@series@kanji{#1}%
@@ -702,7 +702,7 @@
\fi
\else
\begingroup\let\f@encoding\k@encoding\let\f@family\k@family
- \maybe@load@fontshape\endgroup
+ \maybe@load@fontshape\endgroup
\edef\reserved@a{\k@encoding /\k@family /\k@series/#1}%
\ifcsname \reserved@a\endcsname
\edef\k@shape{#1}%
@@ -965,8 +965,8 @@
\let\extract@afont\extract@font
\def\pickup@jfont{%
\ifnum
- \unless\ifnum\ltjgetparameter{direction}=3 1\else
- \ifltjselectfont@force@define 1\else 0\fi\fi =1 %
+ \unless\ifnum\ltjgetparameter{direction}=3 1\else
+ \ifltjselectfont@force@define 1\else 0\fi\fi =1 %
\expandafter \ifx \font@name \relax
\let\extract@font\extract@jfont
\define@newfont
@@ -974,20 +974,20 @@
\fi
\let\getjfont\font@name
\else
- \begingroup\escapechar\m@ne
- \ifcsname ltj@@fontjfm/\expandafter\string\font@name\endcsname\else
- \let\extract@font\extract@jfont@onlyjfm
- \define@newfont
- \let\extract@font\extract@afont
- \fi
- \endgroup
- \csname ltj@@fontjfm/\expandafter\expandafter\expandafter\@gobble\expandafter\string\font@name\endcsname
+ \begingroup\escapechar\m@ne
+ \ifcsname ltj@@fontjfm/\expandafter\string\font@name\endcsname\else
+ \let\extract@font\extract@jfont@onlyjfm
+ \define@newfont
+ \let\extract@font\extract@afont
+ \fi
+ \endgroup
+ \csname ltj@@fontjfm/\expandafter\expandafter\expandafter\@gobble\expandafter\string\font@name\endcsname
\fi
}
\def\pickup@tfont{%
\ifnum
- \ifnum\ltjgetparameter{direction}=3 1\else
- \ifltjselectfont@force@define 1\else 0\fi\fi =1 %
+ \ifnum\ltjgetparameter{direction}=3 1\else
+ \ifltjselectfont@force@define 1\else 0\fi\fi =1 %
\expandafter \ifx \font@name \relax
\let\extract@font\extract@tfont
\define@newfont
@@ -995,14 +995,14 @@
\fi
\let\gettfont\font@name
\else
- \begingroup\escapechar\m@ne
- \ifcsname ltj@@fontjfm/\expandafter\string\font@name\endcsname\else
- \let\extract@font\extract@tfont@onlyjfm
- \define@newfont
- \let\extract@font\extract@afont
- \fi
- \endgroup
- \csname ltj@@fontjfm/\expandafter\expandafter\expandafter\@gobble\expandafter\string\font@name\endcsname
+ \begingroup\escapechar\m@ne
+ \ifcsname ltj@@fontjfm/\expandafter\string\font@name\endcsname\else
+ \let\extract@font\extract@tfont@onlyjfm
+ \define@newfont
+ \let\extract@font\extract@afont
+ \fi
+ \endgroup
+ \csname ltj@@fontjfm/\expandafter\expandafter\expandafter\@gobble\expandafter\string\font@name\endcsname
\fi
}
@@ -1010,18 +1010,18 @@
% わざと「ゴミをつける」
\def\ltj@@patch@external@font#1 at{%
\directlua{
- local s = '\luatexluaescapestring{#1}'
- local is_braced, is_quoted
- if s:sub(1,1)=='{' and s:sub(-1)=='}' then is_braced=true; s=s:sub(2,-2) end
- if s:sub(1,1)=='"' and s:sub(-1)=='"' then is_quoted=true; s=s:sub(2,-2) end
- s=s..luatexja.jfont.print_aftl_address()
- if is_braced then s='{'..s..'}' elseif is_quoted then s='"'..s..'"' end
- %print(s, is_quoted, is_braced)
+ local s = '\luatexluaescapestring{#1}'
+ local is_braced, is_quoted
+ if s:sub(1,1)=='{' and s:sub(-1)=='}' then is_braced=true; s=s:sub(2,-2) end
+ if s:sub(1,1)=='"' and s:sub(-1)=='"' then is_quoted=true; s=s:sub(2,-2) end
+ s=s..luatexja.jfont.print_aftl_address()
+ if is_braced then s='{'..s..'}' elseif is_quoted then s='"'..s..'"' end
+ %print(s, is_quoted, is_braced)
tex.sprint(-2, s)}%
\space at%
}
\def\extract@jfont{%
- \get@external@font
+ \get@external@font
\ltj@@does@alt@set{\f@encoding/\f@family/\f@series/\f@shape}{%
\edef\external@font{\expandafter\ltj@@patch@external@font\external@font}%
}%
@@ -1029,7 +1029,7 @@
\csname \f@encoding+\f@family\endcsname
\csname\curr@fontshape\endcsname}
\def\extract@tfont{%
- \get@external@font
+ \get@external@font
\ltj@@does@alt@set{\f@encoding/\f@family/\f@series/\f@shape}{%
\edef\external@font{\expandafter\ltj@@patch@external@font\external@font}%
}%
@@ -1044,15 +1044,15 @@
}
\luadef\ltj@@jfont@@jfmonly \ltj@@jfont@@jfmonly@@inner
\def\extract@jfont@onlyjfm{%
- \get@external@font
- \csxdef{ltj@@fontjfm/\expandafter\string\font@name}{%
- \ltj@@jfont@@jfmonly{\external@font}{yoko}%
- }}
+ \get@external@font
+ \csxdef{ltj@@fontjfm/\expandafter\string\font@name}{%
+ \ltj@@jfont@@jfmonly{\external@font}{yoko}%
+}}
\def\extract@tfont@onlyjfm{%
- \get@external@font
- \csxdef{ltj@@fontjfm/\expandafter\string\font@name}{%
- \ltj@@jfont@@jfmonly{\external@font}{tate}%
- }}
+ \get@external@font
+ \csxdef{ltj@@fontjfm/\expandafter\string\font@name}{%
+ \ltj@@jfont@@jfmonly{\external@font}{tate}%
+}}
\let\ltj@@al@do@subst@correction=\do@subst@correction
\def\ltj@@ja@do@subst@correction{%
@@ -1106,7 +1106,7 @@
\math@bgroup
\expandafter\ifx\csname M@\f@encoding\endcsname#1\else
#1\fi\ltj@tempcnta=#2
- \expandafter\ltj@@mathJapaneseFonts\string#1/\relax%
+ \expandafter\ltj@@mathJapaneseFonts\string#1/\relax%
\ifin@\jfam#2\relax\else\mathgroup#2\relax\fi
\expandafter\math@egroup\fi}%
@@ -1138,7 +1138,7 @@
\the\ltj@tempcnta,\the\ltj@tempcntb,
'\luatexluaescapestring{\ltj@temp@afont}',
'\luatexluaescapestring{\ltj@temp@bfont}')}%
- }
+}
%%%% \ClearAlternateKanjiFont<Benc><Bfam><Bser><Bshape>
% いつも global
@@ -1161,59 +1161,4 @@
\ltj@@getjfontnumber#1%
\directlua{luatexja.jfont.pickup_alt_font_b(\the\ltj@tempcntc,'\luatexluaescapestring{#2}')}%
}
-
-%%%% patch \@text@composite because of {y,t}albaselineshift
-
-% %% \pltx@isletter from plfonts.dtx
-% \def\pltx@mark{\pltx@mark@}
-% \let\pltx@scanstop\relax
-% \long\def\pltx@cond#1\fi{%
-% #1\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}
-% \long\def\pltx@isletter#1{%
-% \expandafter\pltx@isletter@i#1\pltx@scanstop}
-% \long\def\pltx@isletter@i#1\pltx@scanstop{%
-% \pltx@cond\ifx\pltx@mark#1\pltx@mark\fi{\@firstoftwo}%
-% {\pltx@isletter@ii\pltx@scanstop#1\pltx@scanstop{}#1\pltx@mark}}
-% \long\def\pltx@isletter@ii#1\pltx@scanstop#{%
-% \pltx@cond\ifx\pltx@mark#1\pltx@mark\fi%
-% {\pltx@isletter@iii}{\pltx@isletter@iv}}
-% \long\def\pltx@isletter@iii#1\pltx@mark{\@secondoftwo}
-% \long\def\pltx@isletter@iv#1#2#3\pltx@mark{%
-% \pltx@cond\ifx\pltx@mark#3\pltx@mark\fi{%
-% \pltx@cond{\ifnum0\ifcat A\noexpand#21\fi\ifcat=\noexpand#21\fi>\z@}\fi
-% {\@firstoftwo}{\@secondoftwo}%
-% }{\@secondoftwo}}
-%
-% \def\@text@composite@x#1#2{%
-% \ifx#1\relax
-% #2%
-% \else\pltx@isletter{#1}{#1}{%
-% \begingroup
-% \setbox\z@\hbox\bgroup%
-% \ltj@yablshift\z@ \ltj@tablshift\z@
-% #1%
-% \@tempcntb\directlua{luatexja.pltx_composite_last_node_char()}%)
-% \xdef\pltx@composite@temp{\noexpand\@tempcntb=\the\@tempcntb\relax}%
-% \aftergroup\pltx@composite@temp
-% \egroup
-% \ifnum\ltjgetparameter{direction}=3 %
-% \@tempdima=\ltj@tablshift sp\else\@tempdima=\ltj@yablshift sp\fi
-% \ifnum\@tempcntb<\z@\@tempcnta\z@\else
-% \@tempcnta=\ltjgetparameter{jacharrange}{\ltjgetparameter{chartorange}{\@tempcntb}}\relax
-% \ifnum\@tempcnta=\z@\@tempdima\z@\fi
-% \fi
-% \ifnum\@tempcnta>\z@
-% \ifodd\ltjgetparameter{alxspmode}{\@tempcntb}\else\leavevmode\hbox{}\fi
-% \begingroup\mathsurround\z@$%
-% \hbox{\lower\@tempdima\box\z@}
-% $\endgroup%
-% \ifnum\ltjgetparameter{alxspmode}{\@tempcntb}<2\hbox{}\fi
-% \else
-% \ifdim\@tempdima=\z@{\ltj@yablshift\z@ \ltj@tablshift\z@#1}%
-% \else\lower\@tempdima\box\z@\fi
-% \fi
-% \endgroup}%
-% \fi
-% }
-
\endinput
diff --git a/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-atbegshi.sty b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-atbegshi.sty
new file mode 100644
index 00000000000..ecdfd48c225
--- /dev/null
+++ b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-atbegshi.sty
@@ -0,0 +1,79 @@
+%
+% lltjp-atbegshi.sty
+%
+
+\ifdefined\NeedsTeXFormat
+ \NeedsTeXFormat{LaTeX2e}
+ \ProvidesPackage{lltjp-atbegshi}[2020-07-30 Patch to atbegshi for LuaTeX-ja]
+ \RequirePackage{atbegshi}
+\else
+ \input atbegshi.sty
+\fi
+
+%--------------------------------------
+% following codes are almost copied from
+% pxatbegshi.sty 2019/09/07 v0.5 (in platex-tools bundle, by H. Yamashita).
+
+%% internal macros are locally effective
+\begingroup
+
+%--------------------------------------- helpers
+
+%% unique tokens
+\def\pxabgs@mark{\pxabgs@mark@}
+\def\pxabgs@fin{\pxabgs@fin@}
+
+%% \pxabgs@patch@cmd\CMD{<orig>}{<new>}
+\def\pxabgs@patch@cmd#1#2#3{%
+ \ifx#1\relax\else
+ \def\pxabgs@next##1#2##2\pxabgs@mark##3\pxabgs@fin{%
+ \ifx\pxabgs@mark##3\pxabgs@mark
+ \let#1\relax
+ \else
+ \def\pxabgs@fragment{##2}%
+ \def#1{##1#3##2}%
+ \fi}%
+ \expandafter\pxabgs@next#1\pxabgs@mark#2\pxabgs@mark\pxabgs@fin
+ \fi
+}
+
+%---------------------------------------
+
+% concept: execute all hooks inside yoko direction \vbox
+
+% prepare
+\let\pxabgs@AtBegShi@Output\AtBegShi@Output
+% try first patch
+\pxabgs@patch@cmd\pxabgs@AtBegShi@Output
+ {\let\AtBegShi@OrgProtect\protect}%
+ {\setbox8\vbox\bgroup\yoko\let\AtBegShi@OrgProtect\protect}
+\pxabgs@patch@cmd\pxabgs@AtBegShi@Output
+ {\AtBeginShipoutOriginalShipout\box\AtBeginShipoutBox}%
+ {\AtBeginShipoutOriginalShipout\box\AtBeginShipoutBox\egroup}
+\pxabgs@patch@cmd\pxabgs@AtBegShi@Output
+ {%
+ \begingroup
+ \setbox\AtBeginShipoutBox\box\AtBeginShipoutBox
+ \endgroup
+ \let\protect\AtBegShi@OrgProtect
+ }{%
+ \begingroup
+ \setbox\AtBeginShipoutBox\box\AtBeginShipoutBox
+ \endgroup
+ \let\protect\AtBegShi@OrgProtect
+ \egroup
+ }
+% commit the change only when successful
+\ifx\pxabgs@AtBegShi@Output\relax
+ \@PackageWarningNoLine{lltjp-atbegshi}{%
+ Failed in patching \string\AtBegShi@Output.\MessageBreak
+ This may cause error in tate direction%
+ }
+\else
+ \global\let\AtBegShi@Output\pxabgs@AtBegShi@Output
+\fi
+
+\endgroup
+%% internal macros are no longer effective
+
+\endinput
diff --git a/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-everyshi.sty b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-everyshi.sty
new file mode 100644
index 00000000000..e9510e24870
--- /dev/null
+++ b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-everyshi.sty
@@ -0,0 +1,21 @@
+%
+% lltjp-everyshi.sty 2020-07-27
+% almost the same as pxeveryshi package by ZR
+%
+
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{everyshi}
+
+\def\@EveryShipout@Output{%
+ \setbox8\vbox{%
+ \yoko
+ \@EveryShipout@Hook
+ \@EveryShipout@AtNextHook
+ \global\setbox\luatexoutputbox=\box\luatexoutputbox
+ }%
+ \gdef\@EveryShipout@AtNextHook{}%
+ \@EveryShipout@Org@Shipout\box\luatexoutputbox
+}
+
+
+\endinput