OSDN Git Service

test: flatten the stack table
authorHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Thu, 14 Mar 2013 02:36:14 +0000 (11:36 +0900)
committerHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Thu, 14 Mar 2013 02:36:14 +0000 (11:36 +0900)
14 files changed:
no_runtime/luatexja-kinsoku_make.tex
src/ltj-adjust.lua
src/ltj-compat.lua
src/ltj-inputbuf.lua
src/ltj-jfmglue.lua
src/ltj-jfont.lua
src/ltj-kinsoku.lua
src/ltj-math.lua
src/ltj-otf.lua
src/ltj-setwidth.lua
src/ltj-stack.lua
src/luatexja-compat.sty
src/luatexja-core.sty
src/luatexja.lua

index dee63a3..be36d2f 100644 (file)
@@ -6,9 +6,8 @@
 \usepackage{luacode}
 \begin{luacode}
  s = table.copy(luatexja.stack.charprop_stack_table[0])
- s[0].jwp, s[0].xsp = nil, nil
  s.kanjiskip = nil; s.xkanjiskip = nil
  table.tofile('ltj-kinsoku.lua', s, 'return', false, true, false)
 \end{luacode}
 \begin{document}
-\end{document}
\ No newline at end of file
+\end{document}
index db92b2a..e8b5bdd 100644 (file)
@@ -157,7 +157,7 @@ local function aw_step1(p, res, total)
      return false-- それ以外は対象外.
    end
    local xk = ltjf_font_metric_table -- 
-     [xc.font].size_cache.char_type[has_attr(xc, attr_jchar_class) or 0]
+     [xc.font].char_type[has_attr(xc, attr_jchar_class) or 0]
      ['end_' .. res.name] or 0
      --print(res.name, total, xk, unicode.utf8.char(xc.char))
 
index 6e1da77..acb37ec 100644 (file)
@@ -22,7 +22,7 @@ function to_kansuji(num)
    local s = ""
    while num~=0 do
       s = utf.char(
-        ltjs.get_penalty_table('ksj', num%10,
+        ltjs.get_penalty_table(luatexja.stack_table_index.KSJ + num%10,
                                '', tex.getcount('ltj@@stack'))) .. s
       num=math.floor(num/10)
    end
index d23d21c..f527f34 100644 (file)
@@ -12,6 +12,7 @@ local err, warn, info, log = luatexbase.errwarinf(_NAME)
 
 luatexja.load_module('charrange'); local ltjc = luatexja.charrange
 
+local utf = unicode.utf8
 local node_new = node.new
 local id_glyph = node.id('glyph')
 local getcatcode = tex.getcatcode
index 61c9838..7f4b95c 100644 (file)
@@ -19,7 +19,6 @@ local set_attr = node.set_attribute
 local insert_before = node.insert_before
 local node_next = node.next
 local round = tex.round
-local ltjs_fast_get_penalty_table  = ltjs.fast_get_penalty_table
 local ltjf_font_metric_table = ltjf.font_metric_table
 local ltjf_find_char_class = ltjf.find_char_class
 local node_new = node.new
@@ -43,10 +42,10 @@ local id_kern = node.id('kern')
 local id_penalty = node.id('penalty')
 
 local id_glue_spec = node.id('glue_spec')
-local id_jglyph = node.id('glyph') + 256      -- Japanese character
-local id_box_like = node.id('hlist') + 256    -- vbox, shifted hbox
-local id_pbox = node.id('hlist') + 512        -- already processed nodes (by \unhbox)
-local id_pbox_w = node.id('hlist') + 513      -- cluster which consists of a whatsit
+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_start_link = node.subtype('pdf_start_link')
@@ -66,10 +65,10 @@ local BOXBDD       = luatexja.icflag_table.BOXBDD
 local PROCESSED_BEGIN_FLAG = luatexja.icflag_table.PROCESSED_BEGIN_FLAG
 local kanji_skip
 local xkanji_skip
+local table_current_stack
 
 local attr_curjfnt = luatexbase.attributes['ltj@curjfnt']
 local attr_icflag = luatexbase.attributes['ltj@icflag']
-local max_dimen = 1073741823
 
 local function get_attr_icflag(p)
    return (has_attr(p, attr_icflag) or 0)%PROCESSED_BEGIN_FLAG
@@ -83,7 +82,7 @@ end
 
 -- This function is called only for acquiring `special' characters.
 local function fast_find_char_class(c,m)
-   return m.size_cache.chars[c] or 0
+   return m.chars[c] or 0
 end
 
 -- 文字クラスの決定
@@ -287,17 +286,21 @@ local calc_np_auxtable = {
                end,
    [id_hlist] = function(lp) 
                   Np.first = Np.first or lp; Np.last = lp; Np.nuc = lp; 
-                  set_attr_icflag_processed(lp)
+                  set_attr(lp, attr_icflag, PROCESSED)
+                  --set_attr_icflag_processed(lp)
                   Np.id = (lp.shift~=0) and id_box_like or id_hlist
                   return true, node_next(lp)
                end,
    box_like = function(lp)
                 Np.first = Np.first or lp; Np.nuc = lp; Np.last = lp;
-                Np.id = id_box_like; set_attr_icflag_processed(lp); 
+                Np.id = id_box_like; set_attr(lp, attr_icflag, PROCESSED)
+                -- set_attr_icflag_processed(lp); 
                 return true, node_next(lp);
              end,
    skip = function(lp) 
-            set_attr_icflag_processed(lp); return false, node_next(lp)
+            set_attr(lp, attr_icflag, PROCESSED) 
+            -- set_attr_icflag_processed(lp); 
+            return false, node_next(lp)
          end,
    [id_whatsit] = function(lp) 
                  if lp.subtype==sid_user then
@@ -306,7 +309,8 @@ local calc_np_auxtable = {
                        head = node.remove(head, lp); node.free(lp); ihb_flag = true
                        return false, lq;
                     else
-                       set_attr_icflag_processed(lp)
+                       set_attr(lp, attr_icflag, PROCESSED)
+                       -- set_attr_icflag_processed(lp)
                        luatexbase.call_callback("luatexja.jfmglue.whatsit_getinfo",
                                                 Np, lp, Nq)
                        if Np.nuc then 
@@ -323,39 +327,44 @@ local calc_np_auxtable = {
                     elseif lp.subtype == sid_end_link or lp.subtype == sid_end_thread then
                        Np.first, Nq.last = nil, lp;
                     end
-                    set_attr_icflag_processed(lp); return false, node_next(lp)
+                    set_attr(lp, attr_icflag, PROCESSED)
+                    -- set_attr_icflag_processed(lp); 
+                    return false, node_next(lp)
                  end
                  end,
    [id_math] = function(lp)
                  Np.first, Np.nuc = (Np.first or lp), lp; 
-                 set_attr_icflag_processed(lp); lp  = node_next(lp) 
+                 set_attr(lp, attr_icflag, PROCESSED) -- set_attr_icflag_processed(lp); 
+                 lp  = node_next(lp) 
                  while lp.id~=id_math do 
-                    set_attr_icflag_processed(lp); lp  = node_next(lp) 
+                    set_attr(lp, attr_icflag, PROCESSED) -- set_attr_icflag_processed(lp);
+                    lp  = node_next(lp) 
                  end
-                 set_attr_icflag_processed(lp); 
+                 set_attr(lp, attr_icflag, PROCESSED) -- set_attr_icflag_processed(lp); 
                  Np.last, Np.id = lp, id_math;
                  return true, node_next(lp); 
               end,
    discglue = function(lp)
                 Np.first, Np.nuc, Np.last = (Np.first or lp), lp, lp; 
-                Np.id = lp.id; set_attr_icflag_processed(lp); return true, node_next(lp)
+                Np.id = lp.id; set_attr(lp, attr_icflag, PROCESSED) -- set_attr_icflag_processed(lp); 
+                return true, node_next(lp)
               end,
    [id_kern] = function(lp) 
                  Np.first = Np.first or lp
                  if lp.subtype==2 then
-                    set_attr_icflag_processed(lp); lp = node_next(lp)
-                    set_attr_icflag_processed(lp); lp = node_next(lp)
-                    set_attr_icflag_processed(lp); lp = node_next(lp)
-                    set_attr_icflag_processed(lp); Np.nuc = lp
+                    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); Np = node_next(lp)
+                    set_attr(lp, attr_icflag, PROCESSED); Np.nuc = lp
                     Np.id = (lp.font == (has_attr(lp, attr_curjfnt) or -1)) and id_jglyph or id_glyph
                     return true, check_next_ickern(node_next(lp)); 
                  else
-                    Np.id = id_kern; set_attr_icflag_processed(lp);
+                    Np.id = id_kern; set_attr(lp, attr_icflag, PROCESSED); -- set_attr_icflag_processed(lp);
                     Np.last = lp; return true, node_next(lp)
                  end
               end,
    [id_penalty] = function(lp)
-                    Bp[#Bp+1] = lp; set_attr_icflag_processed(lp); 
+                    Bp[#Bp+1] = lp; set_attr(lp, attr_icflag, PROCESSED); -- set_attr_icflag_processed(lp); 
                     return false, node_next(lp)
                  end,
 }
@@ -372,7 +381,7 @@ local pairs = pairs
 function calc_np(lp, last)
    local k
    -- We assume lp = node_next(Np.last)
-   Np, Nq, ihb_flag = Nq, Np, false
+   Np, Nq, ihb_flag = Nq, Np, nil
    -- We clear `predefined' entries of Np before pairs() loop,
    -- because using only pairs() loop is slower.
    Np.post, Np.pre, Np.xspc = nil, nil, nil
@@ -406,6 +415,10 @@ local calc_np = calc_np
 --            "Np is an alphabetic character" if Np.pre~=nil,
 --            "Np is not a character" otherwise.
 do
+  local PRE  = luatexja.stack_table_index.PRE
+  local POST = luatexja.stack_table_index.POST
+  local KCAT = luatexja.stack_table_index.KCAT
+  local XSP  = luatexja.stack_table_index.XSP
 
 -- 和文文字のデータを取得
    local attr_jchar_class = luatexbase.attributes['ltj@charclass']
@@ -417,11 +430,10 @@ do
       local cls, c = slow_find_char_class(has_attr(x, attr_orig_char), m, x.char)
       Nx.class = cls; set_attr(x, attr_jchar_class, cls)
       Nx.met, Nx.char = m, c
-      local t = ltjs.fast_get_penalty_table_parent(c)
-      Nx.pre = t.pre or 0
-      Nx.post = t.post or 0
-      Nx.xspc = t.xsp or 3
-      Nx.kcat = t.kcat or 0
+      Nx.pre  = table_current_stack[PRE + c]  or 0
+      Nx.post = table_current_stack[POST + c] or 0
+      Nx.xspc = table_current_stack[XSP  + c] or 3
+      Nx.kcat = table_current_stack[KCAT + c] or 0
       Nx.auto_kspc, Nx.auto_xspc = (has_attr(x, attr_autospc)==1), (has_attr(x, attr_autoxspc)==1)
    end 
    local set_np_xspc_jachar = set_np_xspc_jachar
@@ -442,14 +454,13 @@ do
            end
             c = x.char
         end
-         local t = ltjs.fast_get_penalty_table_parent(c) 
-        Nx.pre = t.pre or 0
-        Nx.post = t.post or 0
-         Nx.xspc = t.xsp or 3
-        Nx.char = 'jcharbdd'
+      Nx.pre  = table_current_stack[PRE + c]  or 0
+      Nx.post = table_current_stack[POST + c] or 0
+      Nx.xspc = table_current_stack[XSP  + c] or 3
+      Nx.char = 'jcharbdd'
       else
         Nx.pre, Nx.post, Nx.char = 0, 0, -1
-         Nx.xspc = ltjs_fast_get_penalty_table('xsp', -1) or 3
+         Nx.xspc = table_current_stack[XSP - 1] or 3
       end
       Nx.met = nil
       Nx.auto_xspc = (has_attr(x, attr_autoxspc)==1)
@@ -544,7 +555,7 @@ end
 -- 和文文字間の JFM glue を node 化
 local function new_jfm_glue(m, bc, ac)
 -- bc, ac: char classes
-   local z = m.size_cache.char_type[bc]
+   local z = m.char_type[bc]
    local g, d = z.glue[ac], 0 
    if g then
       g,d = node_copy(g[1]), g[2]; 
@@ -561,7 +572,7 @@ local function new_jfm_glue(m, bc, ac)
 end
 
 -- Nq.last (kern w) .... (glue/kern g) Np.first
-local function real_insert(w, g)
+local function real_insert(g)
    if g then
       head  = insert_before(head, Np.first, g)
       Np.first = g
@@ -590,11 +601,11 @@ local function get_kanjiskip_jfm()
       local gx = node_new(id_glue_spec);
       gx.stretch_order, gx.shrink_order = 0, 0
       local pm, qm = Np.met, Nq.met
-      local bk = qm.size_cache.kanjiskip or {0, 0, 0}
-      if (pm.size_cache==qm.size_cache) and (qm.var==pm.var) then
+      local bk = qm.kanjiskip or {0, 0, 0}
+      if (pm.char_type==qm.char_type) and (qm.var==pm.var) then
          gx.width = bk[1]; gx.stretch = bk[2]; gx.shrink = bk[3]
       else
-         local ak = pm.size_cache.kanjiskip or {0, 0, 0}
+         local ak = pm.kanjiskip or {0, 0, 0}
          gx.width = round(diffmet_rule(bk[1], ak[1]))
          gx.stretch = round(diffmet_rule(bk[2], ak[2]))
          gx.shrink = -round(diffmet_rule(-bk[3], -ak[3]))
@@ -670,7 +681,7 @@ local function calc_ja_ja_glue()
    if  ihb_flag then return nil
    else
       local qm, pm = Nq.met, Np.met
-      if (qm.size_cache==pm.size_cache) and (qm.var==pm.var) then
+      if (qm.char_type==pm.char_type) and (qm.var==pm.var) then
          return new_jfm_glue(qm, Nq.class, Np.class)
       else
          local npn, nqn = Np.nuc, Nq.nuc
@@ -703,7 +714,7 @@ local function get_xkanjiskip_jfm(Nn)
       g =  node_new(id_glue); --copy_attr(g, Nn.nuc)
       local gx = node_new(id_glue_spec);
       gx.stretch_order, gx.shrink_order = 0, 0
-      local bk = Nn.met.size_cache.xkanjiskip or {0, 0, 0}
+      local bk = Nn.met.xkanjiskip or {0, 0, 0}
       gx.width = bk[1]; gx.stretch = bk[2]; gx.shrink = bk[3]
       g.spec = gx
    else
@@ -739,21 +750,20 @@ local function handle_np_jachar(mode)
    local qid = Nq.id
    if qid==id_jglyph or ((qid==id_pbox or qid==id_pbox_w) and Nq.met) then 
       local g = calc_ja_ja_glue() or get_kanjiskip() -- M->K
-      handle_penalty_normal(Nq.post, Np.pre, g); real_insert(0, g)
+      handle_penalty_normal(Nq.post, Np.pre, g); real_insert(g)
    elseif Nq.met then  -- qid==id_hlist
       local g = get_OA_skip() or get_kanjiskip() -- O_A->K
-      handle_penalty_normal(0, Np.pre, g); real_insert(0, g)
+      handle_penalty_normal(0, Np.pre, g); real_insert(g)
    elseif Nq.pre then 
       local g = get_OA_skip() or get_xkanjiskip(Np) -- O_A->X
-      if qid==id_hlist then Nq.post = 0 end
-      handle_penalty_normal(Nq.post, Np.pre, g); real_insert(0, g)
+      handle_penalty_normal((qid==id_hlist and 0 or Nq.post), Np.pre, g); real_insert(g)
    else
       local g = get_OA_skip() -- O_A
       if qid==id_glue then handle_penalty_normal(0, Np.pre, g)
       elseif qid==id_kern then handle_penalty_suppress(0, Np.pre, g)
       else handle_penalty_always(0, Np.pre, g)
       end
-      real_insert(0, g)
+      real_insert(g)
    end
    if mode and Np.kcat%2~=1 then
       widow_Np.first, widow_Bp, Bp = Np.first, Bp, widow_Bp
@@ -764,16 +774,15 @@ end
 -- jachar .. (anything)
 local function handle_nq_jachar()
     if Np.pre then 
-      if Np.id==id_hlist then Np.pre = 0 end
       local g = get_OB_skip() or get_xkanjiskip(Nq) -- O_B->X
-      handle_penalty_normal(Nq.post, Np.pre, g); real_insert(0, g)
+      handle_penalty_normal(Nq.post, (Np.id==id_hlist and 0 or Np.pre), g); real_insert(g)
    else
       local g = get_OB_skip() -- O_B
       if Np.id==id_glue then handle_penalty_normal(Nq.post, 0, g)
       elseif Np.id==id_kern then handle_penalty_suppress(Nq.post, 0, g)
       else handle_penalty_always(Nq.post, 0, g)
       end
-      real_insert(0, g)
+      real_insert(g)
    end
 end
 
@@ -782,13 +791,13 @@ local function handle_np_ja_hlist()
    local qid = Nq.id
    if qid==id_jglyph or ((qid==id_pbox or Nq.id == id_pbox_w) and Nq.met) then 
       local g = get_OB_skip() or get_kanjiskip() -- O_B->K
-      handle_penalty_normal(Nq.post, 0, g); real_insert(0, g)
+      handle_penalty_normal(Nq.post, 0, g); real_insert(g)
    elseif Nq.met then  -- Nq.id==id_hlist
       local g = get_kanjiskip() -- K
-      handle_penalty_suppress(0, 0, g); real_insert(0, g)
+      handle_penalty_suppress(0, 0, g); real_insert(g)
    elseif Nq.pre then 
       local g = get_xkanjiskip(Np) -- X
-      handle_penalty_suppress(0, 0, g); real_insert(0, g)
+      handle_penalty_suppress(0, 0, g); real_insert(g)
    end
 end
 
@@ -796,23 +805,38 @@ end
 local function handle_nq_ja_hlist()
    if Np.pre then 
       local g = get_xkanjiskip(Nq) -- X
-      handle_penalty_suppress(0, 0, g); real_insert(0, g)
+      handle_penalty_suppress(0, 0, g); real_insert(g)
    end
 end
 
+
 -- Nq が前側のクラスタとなることによる修正
-local function adjust_nq()
-   if Nq.id==id_glyph then after_alchar(Nq)
-   elseif Nq.id==id_hlist or Nq.id==id_pbox or Nq.id==id_disc then after_hlist(Nq)
-   elseif Nq.id == id_pbox_w then 
-      luatexbase.call_callback("luatexja.jfmglue.whatsit_after",
-                              false, Nq, Np)
+do
+   local adjust_nq_aux = {
+      [id_glyph] = function() 
+                     local x = Nq.nuc
+                     return set_np_xspc_alchar(Nq, x.char,x, 2)
+                  end, -- after_alchar(Nq)
+      [id_hlist]  = function() after_hlist(Nq) end,
+      [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,
+   }
+
+   function adjust_nq()
+      local x = adjust_nq_aux[Nq.id]
+      if x then x()  end
    end
 end
 
+
 -------------------- 開始・終了時の処理
 
 -- リスト末尾の処理
+local JWP  = luatexja.stack_table_index.JWP
 local function handle_list_tail(mode)
    adjust_nq(); Np = Nq
    if mode then
@@ -821,7 +845,7 @@ local function handle_list_tail(mode)
       Bp = widow_Bp; Np = widow_Np
       if Np.first then
         handle_penalty_normal(0,
-                              ltjs_fast_get_penalty_table('jwp', 0) or 0)
+                              table_current_stack[JWP] or 0)
       end
    else
       -- the current list is the contents of a hbox
@@ -857,18 +881,20 @@ end
 -- initialize
 -- return value: (the initial cursor lp), (last node)
 local function init_var(mode)
+   -- 1073741823: max_dimen
    Bp, widow_Bp, widow_Np = {}, {}, {first = nil}
-   
+   table_current_stack = ltjs.table_current_stack
+
    kanji_skip = node_new(id_glue)
    kanji_skip.spec = skip_table_to_spec('kanjiskip')
    set_attr(kanji_skip, attr_icflag, KANJI_SKIP)
-   get_kanjiskip = (kanji_skip.spec.width == max_dimen)
+   get_kanjiskip = (kanji_skip.spec.width == 1073741823)
       and get_kanjiskip_jfm or get_kanjiskip_normal
 
    xkanji_skip = node_new(id_glue)
    xkanji_skip.spec = skip_table_to_spec('xkanjiskip')
    set_attr(xkanji_skip, attr_icflag, XKANJI_SKIP)
-   get_xkanjiskip = (xkanji_skip.spec.width == max_dimen
+   get_xkanjiskip = (xkanji_skip.spec.width == 1073741823
       and get_xkanjiskip_jfm or get_xkanjiskip_normal
 
    Np = {
index c360a6e..abadb63 100644 (file)
@@ -173,7 +173,9 @@ luatexbase.create_callback("luatexja.find_char_class", "data",
 function find_char_class(c,m)
 -- c: character code, m: 
    if not m then return 0 end
-   return m.size_cache.chars[c] or 
+--   print("**")
+--   for i,v in pairs(m) do print(i,v) end
+   return m.chars[c] or 
       luatexbase.call_callback("luatexja.find_char_class", 0, m, c)
 end
 
@@ -229,8 +231,12 @@ function jfontdefY() -- for horizontal font
      return 
    end
    update_jfm_cache(j, f.size)
+   local sz = metrics[j].size_cache[f.size]
    local fmtable = { jfm = j, size = f.size, var = jfm_var, 
-                    size_cache = metrics[j].size_cache[f.size] }
+                    zw = sz.zw, zh = sz.zh, 
+                    chars = sz.chars, char_type = sz.char_type,
+                    kanjiskip = sz.kanjiskip, xkanjiskip = sz.xkanjiskip, 
+                   }
    fmtable = luatexbase.call_callback("luatexja.define_jfont", fmtable, fn)
    font_metric_table[fn]=fmtable
    tex.sprint(cat_lp, luatexja.is_global .. '\\protected\\expandafter\\def\\csname ' 
@@ -241,7 +247,7 @@ end
 function load_zw()
    local a = font_metric_table[tex.attribute[attr_curjfnt]]
    if a then
-      tex.setdimen('ltj@zw', a.size_cache.zw)
+      tex.setdimen('ltj@zw', a.zw)
    else 
       tex.setdimen('ltj@zw',0)
    end
@@ -250,7 +256,7 @@ end
 function load_zh()
    local a = font_metric_table[tex.attribute[attr_curjfnt]]
    if a then
-      tex.setdimen('ltj@zh', a.size_cache.zh)
+      tex.setdimen('ltj@zh', a.zh)
    else 
       tex.setdimen('ltj@zh',0)
    end
@@ -306,7 +312,7 @@ function append_italic()
         f = has_attr(p, attr_curjfnt)
         local j = font_metric_table[f]
         local c = find_char_class(p.char, j)
-        g.kern = j.size_cache.char_type[c].italic
+        g.kern = j.char_type[c].italic
       else
         g.kern = font.fonts[f].characters[p.char].italic
       end
index 892e0b6..328bf99 100644 (file)
 return {
- [0]={
-  ksj=12295,
- },
- {
-  ksj=19968,
-  xsp=0,
- },
- {
-  ksj=20108,
-  xsp=0,
- },
- {
-  ksj=19977,
-  xsp=0,
- },
- {
-  ksj=22235,
-  xsp=0,
- },
- {
-  ksj=20116,
-  xsp=0,
- },
- {
-  ksj=20845,
-  xsp=0,
- },
- {
-  ksj=19971,
-  xsp=0,
- },
- {
-  ksj=20843,
-  xsp=0,
- },
- {
-  ksj=20061,
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  pre=10000,
-  xsp=0,
- },
- {
-  pre=10000,
-  xsp=0,
- },
- {
-  post=500,
-  xsp=0,
- },
- {
-  post=500,
-  xsp=0,
- },
- {
-  post=500,
-  xsp=0,
- },
- {
-  post=500,
-  xsp=0,
- },
- {
-  pre=10000,
-  xsp=2,
- },
- {
-  post=10000,
-  xsp=1,
- },
- {
-  pre=10000,
-  xsp=2,
- },
- {
-  pre=500,
-  xsp=0,
- },
- {
-  pre=500,
-  xsp=0,
- },
- {
-  xsp=2,
- },
- {
-  pre=10000,
-  xsp=0,
- },
- {
-  pre=10000,
-  xsp=2,
- },
- {
-  pre=500,
-  xsp=0,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  pre=10000,
-  xsp=0,
- },
- {
-  pre=10000,
-  xsp=2,
- },
- {
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  pre=10000,
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  post=10000,
-  xsp=1,
- },
- {
-  xsp=0,
- },
- {
-  pre=10000,
-  xsp=2,
- },
- {
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  post=10000,
-  xsp=1,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  xsp=0,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  post=10000,
-  xsp=1,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=0,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  pre=10000,
-  xsp=2,
- },
- {
-  post=10000,
-  xsp=1,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=2,
- },
- {
-  xsp=3,
- },
- {
-  pre=10000,
-  xsp=2,
- },
- {
-  pre=10000,
-  xsp=2,
- },
- {
-  pre=10000,
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  pre=10000,
-  xsp=2,
- },
- {
-  pre=10000,
-  xsp=2,
- },
- {
-  pre=10000,
-  xsp=2,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  post=10000,
-  xsp=1,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- {
-  xsp=3,
- },
- [720]={
-  pre=10000,
- },
- [8192]={
-  kcat=1,
- },
- [8193]={
-  kcat=1,
- },
- [8194]={
-  kcat=1,
- },
- [8195]={
-  kcat=1,
- },
- [8196]={
-  kcat=1,
- },
- [8197]={
-  kcat=1,
- },
- [8198]={
-  kcat=1,
- },
- [8199]={
-  kcat=1,
- },
- [8200]={
-  kcat=1,
- },
- [8201]={
-  kcat=1,
- },
- [8202]={
-  kcat=1,
- },
- [8203]={
-  kcat=1,
- },
- [8204]={
-  kcat=1,
- },
- [8205]={
-  kcat=1,
- },
- [8206]={
-  kcat=1,
- },
- [8207]={
-  kcat=1,
- },
- [8208]={
-  kcat=1,
- },
- [8209]={
-  kcat=1,
- },
- [8210]={
-  kcat=1,
- },
- [8211]={
-  kcat=1,
- },
- [8212]={
-  kcat=1,
-  xsp=0,
- },
- [8213]={
-  kcat=1,
-  xsp=0,
- },
- [8214]={
-  kcat=1,
- },
- [8215]={
-  kcat=1,
- },
- [8216]={
-  kcat=1,
-  post=10000,
-  xsp=1,
- },
- [8217]={
-  kcat=1,
-  pre=10000,
-  xsp=2,
- },
- [8218]={
-  kcat=1,
- },
- [8219]={
-  kcat=1,
- },
- [8220]={
-  kcat=1,
-  post=10000,
-  xsp=1,
- },
- [8221]={
-  kcat=1,
-  pre=10000,
-  xsp=2,
- },
- [8222]={
-  kcat=1,
- },
- [8223]={
-  kcat=1,
- },
- [8224]={
-  kcat=1,
- },
- [8225]={
-  kcat=1,
- },
- [8226]={
-  kcat=1,
- },
- [8227]={
-  kcat=1,
- },
- [8228]={
-  kcat=1,
- },
- [8229]={
-  kcat=1,
-  pre=250,
- },
- [8230]={
-  kcat=1,
-  pre=250,
-  xsp=0,
- },
- [8231]={
-  kcat=1,
- },
- [8232]={
-  kcat=1,
- },
- [8233]={
-  kcat=1,
- },
- [8234]={
-  kcat=1,
- },
- [8235]={
-  kcat=1,
- },
- [8236]={
-  kcat=1,
- },
- [8237]={
-  kcat=1,
- },
- [8238]={
-  kcat=1,
- },
- [8239]={
-  kcat=1,
- },
- [8240]={
-  kcat=1,
- },
- [8241]={
-  kcat=1,
- },
- [8242]={
-  kcat=1,
-  xsp=2,
- },
- [8243]={
-  kcat=1,
-  xsp=2,
- },
- [8244]={
-  kcat=1,
- },
- [8245]={
-  kcat=1,
- },
- [8246]={
-  kcat=1,
- },
- [8247]={
-  kcat=1,
- },
- [8248]={
-  kcat=1,
- },
- [8249]={
-  kcat=1,
- },
- [8250]={
-  kcat=1,
- },
- [8251]={
-  kcat=1,
- },
- [8252]={
-  kcat=1,
-  pre=10000,
-  xsp=2,
- },
- [8253]={
-  kcat=1,
- },
- [8254]={
-  kcat=1,
- },
- [8255]={
-  kcat=1,
- },
- [8256]={
-  kcat=1,
- },
- [8257]={
-  kcat=1,
- },
- [8258]={
-  kcat=1,
- },
- [8259]={
-  kcat=1,
- },
- [8260]={
-  kcat=1,
- },
- [8261]={
-  kcat=1,
- },
- [8262]={
-  kcat=1,
- },
- [8263]={
-  kcat=1,
-  pre=10000,
-  xsp=2,
- },
- [8264]={
-  kcat=1,
-  pre=10000,
-  xsp=2,
- },
- [8265]={
-  kcat=1,
-  pre=10000,
-  xsp=2,
- },
- [8266]={
-  kcat=1,
- },
- [8267]={
-  kcat=1,
- },
- [8268]={
-  kcat=1,
- },
- [8269]={
-  kcat=1,
- },
- [8270]={
-  kcat=1,
- },
- [8271]={
-  kcat=1,
- },
- [8272]={
-  kcat=1,
- },
- [8273]={
-  kcat=1,
- },
- [8274]={
-  kcat=1,
- },
- [8275]={
-  kcat=1,
- },
- [8276]={
-  kcat=1,
- },
- [8277]={
-  kcat=1,
- },
- [8278]={
-  kcat=1,
- },
- [8279]={
-  kcat=1,
- },
- [8280]={
-  kcat=1,
- },
- [8281]={
-  kcat=1,
- },
- [8282]={
-  kcat=1,
- },
- [8283]={
-  kcat=1,
- },
- [8284]={
-  kcat=1,
- },
- [8285]={
-  kcat=1,
- },
- [8286]={
-  kcat=1,
- },
- [8287]={
-  kcat=1,
- },
- [8288]={
-  kcat=1,
- },
- [8289]={
-  kcat=1,
- },
- [8290]={
-  kcat=1,
- },
- [8291]={
-  kcat=1,
- },
- [8292]={
-  kcat=1,
- },
- [8293]={
-  kcat=1,
- },
- [8294]={
-  kcat=1,
- },
- [8295]={
-  kcat=1,
- },
- [8296]={
-  kcat=1,
- },
- [8297]={
-  kcat=1,
- },
- [8298]={
-  kcat=1,
- },
- [8299]={
-  kcat=1,
- },
- [8300]={
-  kcat=1,
- },
- [8301]={
-  kcat=1,
- },
- [8302]={
-  kcat=1,
- },
- [8303]={
-  kcat=1,
- },
- [8364]={
-  post=10000,
-  xsp=1,
- },
- [8482]={
-  pre=10000,
-  xsp=2,
- },
- [8722]={
-  pre=200,
- },
- [9472]={
-  xsp=0,
- },
- [9473]={
-  xsp=0,
- },
- [9474]={
-  xsp=0,
- },
- [9475]={
-  xsp=0,
- },
- [9476]={
-  xsp=0,
- },
- [9477]={
-  xsp=0,
- },
- [9478]={
-  xsp=0,
- },
- [9479]={
-  xsp=0,
- },
- [9480]={
-  xsp=0,
- },
- [9481]={
-  xsp=0,
- },
- [9482]={
-  xsp=0,
- },
- [9483]={
-  xsp=0,
- },
- [9484]={
-  xsp=0,
- },
- [9485]={
-  xsp=0,
- },
- [9486]={
-  xsp=0,
- },
- [9487]={
-  xsp=0,
- },
- [9488]={
-  xsp=0,
- },
- [9489]={
-  xsp=0,
- },
- [9490]={
-  xsp=0,
- },
- [9491]={
-  xsp=0,
- },
- [9492]={
-  xsp=0,
- },
- [9493]={
-  xsp=0,
- },
- [9494]={
-  xsp=0,
- },
- [9495]={
-  xsp=0,
- },
- [9496]={
-  xsp=0,
- },
- [9497]={
-  xsp=0,
- },
- [9498]={
-  xsp=0,
- },
- [9499]={
-  xsp=0,
- },
- [9500]={
-  xsp=0,
- },
- [9501]={
-  xsp=0,
- },
- [9502]={
-  xsp=0,
- },
- [9503]={
-  xsp=0,
- },
- [9504]={
-  xsp=0,
- },
- [9505]={
-  xsp=0,
- },
- [9506]={
-  xsp=0,
- },
- [9507]={
-  xsp=0,
- },
- [9508]={
-  xsp=0,
- },
- [9509]={
-  xsp=0,
- },
- [9510]={
-  xsp=0,
- },
- [9511]={
-  xsp=0,
- },
- [9512]={
-  xsp=0,
- },
- [9513]={
-  xsp=0,
- },
- [9514]={
-  xsp=0,
- },
- [9515]={
-  xsp=0,
- },
- [9516]={
-  xsp=0,
- },
- [9517]={
-  xsp=0,
- },
- [9518]={
-  xsp=0,
- },
- [9519]={
-  xsp=0,
- },
- [9520]={
-  xsp=0,
- },
- [9521]={
-  xsp=0,
- },
- [9522]={
-  xsp=0,
- },
- [9523]={
-  xsp=0,
- },
- [9524]={
-  xsp=0,
- },
- [9525]={
-  xsp=0,
- },
- [9526]={
-  xsp=0,
- },
- [9527]={
-  xsp=0,
- },
- [9528]={
-  xsp=0,
- },
- [9529]={
-  xsp=0,
- },
- [9530]={
-  xsp=0,
- },
- [9531]={
-  xsp=0,
- },
- [9532]={
-  xsp=0,
- },
- [9533]={
-  xsp=0,
- },
- [9534]={
-  xsp=0,
- },
- [9535]={
-  xsp=0,
- },
- [9536]={
-  xsp=0,
- },
- [9537]={
-  xsp=0,
- },
- [9538]={
-  xsp=0,
- },
- [9539]={
-  xsp=0,
- },
- [9540]={
-  xsp=0,
- },
- [9541]={
-  xsp=0,
- },
- [9542]={
-  xsp=0,
- },
- [9543]={
-  xsp=0,
- },
- [9544]={
-  xsp=0,
- },
- [9545]={
-  xsp=0,
- },
- [9546]={
-  xsp=0,
- },
- [9547]={
-  xsp=0,
- },
- [9548]={
-  xsp=0,
- },
- [9549]={
-  xsp=0,
- },
- [9550]={
-  xsp=0,
- },
- [9551]={
-  xsp=0,
- },
- [9552]={
-  xsp=0,
- },
- [9553]={
-  xsp=0,
- },
- [9554]={
-  xsp=0,
- },
- [9555]={
-  xsp=0,
- },
- [9556]={
-  xsp=0,
- },
- [9557]={
-  xsp=0,
- },
- [9558]={
-  xsp=0,
- },
- [9559]={
-  xsp=0,
- },
- [9560]={
-  xsp=0,
- },
- [9561]={
-  xsp=0,
- },
- [9562]={
-  xsp=0,
- },
- [9563]={
-  xsp=0,
- },
- [9564]={
-  xsp=0,
- },
- [9565]={
-  xsp=0,
- },
- [9566]={
-  xsp=0,
- },
- [9567]={
-  xsp=0,
- },
- [9568]={
-  xsp=0,
- },
- [9569]={
-  xsp=0,
- },
- [9570]={
-  xsp=0,
- },
- [9571]={
-  xsp=0,
- },
- [9572]={
-  xsp=0,
- },
- [9573]={
-  xsp=0,
- },
- [9574]={
-  xsp=0,
- },
- [9575]={
-  xsp=0,
- },
- [9576]={
-  xsp=0,
- },
- [9577]={
-  xsp=0,
- },
- [9578]={
-  xsp=0,
- },
- [9579]={
-  xsp=0,
- },
- [9580]={
-  xsp=0,
- },
- [9581]={
-  xsp=0,
- },
- [9582]={
-  xsp=0,
- },
- [9583]={
-  xsp=0,
- },
- [9584]={
-  xsp=0,
- },
- [9585]={
-  xsp=0,
- },
- [9586]={
-  xsp=0,
- },
- [9587]={
-  xsp=0,
- },
- [9588]={
-  xsp=0,
- },
- [9589]={
-  xsp=0,
- },
- [9590]={
-  xsp=0,
- },
- [9591]={
-  xsp=0,
- },
- [9592]={
-  xsp=0,
- },
- [9593]={
-  xsp=0,
- },
- [9594]={
-  xsp=0,
- },
- [9595]={
-  xsp=0,
- },
- [9596]={
-  xsp=0,
- },
- [9597]={
-  xsp=0,
- },
- [9598]={
-  xsp=0,
- },
- [9599]={
-  xsp=0,
- },
- [10629]={
-  post=10000,
-  xsp=1,
- },
- [10630]={
-  pre=10000,
-  xsp=2,
- },
- [12288]={
-  kcat=1,
- },
- [12289]={
-  kcat=1,
-  pre=10000,
-  xsp=2,
- },
- [12290]={
-  kcat=1,
-  pre=10000,
-  xsp=2,
- },
- [12291]={
-  kcat=1,
- },
- [12292]={
-  kcat=1,
- },
- [12293]={
-  kcat=1,
-  pre=10000,
- },
- [12294]={
-  kcat=1,
- },
- [12295]={
-  kcat=1,
- },
- [12296]={
-  kcat=1,
-  post=10000,
-  xsp=1,
- },
- [12297]={
-  kcat=1,
-  pre=10000,
-  xsp=2,
- },
- [12298]={
-  kcat=1,
-  post=10000,
-  xsp=1,
- },
- [12299]={
-  kcat=1,
-  pre=10000,
-  xsp=2,
- },
- [12300]={
-  kcat=1,
-  post=10000,
-  xsp=1,
- },
- [12301]={
-  kcat=1,
-  pre=10000,
-  xsp=2,
- },
- [12302]={
-  kcat=1,
-  post=10000,
-  xsp=1,
- },
- [12303]={
-  kcat=1,
-  pre=10000,
-  xsp=2,
- },
- [12304]={
-  kcat=1,
-  post=10000,
-  xsp=1,
- },
- [12305]={
-  kcat=1,
-  pre=10000,
-  xsp=2,
- },
- [12306]={
-  kcat=1,
- },
- [12307]={
-  kcat=1,
- },
- [12308]={
-  kcat=1,
-  post=10000,
-  xsp=1,
- },
- [12309]={
-  kcat=1,
-  pre=10000,
-  xsp=2,
- },
- [12310]={
-  kcat=1,
-  post=10000,
-  xsp=1,
- },
- [12311]={
-  kcat=1,
-  pre=10000,
-  xsp=2,
- },
- [12312]={
-  kcat=1,
-  post=10000,
-  xsp=1,
- },
- [12313]={
-  kcat=1,
-  pre=10000,
-  xsp=2,
- },
- [12314]={
-  kcat=1,
- },
- [12315]={
-  kcat=1,
- },
- [12316]={
-  kcat=1,
-  xsp=0,
- },
- [12317]={
-  kcat=1,
-  post=10000,
-  xsp=1,
- },
- [12318]={
-  kcat=1,
- },
- [12319]={
-  kcat=1,
-  pre=10000,
-  xsp=2,
- },
- [12320]={
-  kcat=1,
- },
- [12321]={
-  kcat=1,
- },
- [12322]={
-  kcat=1,
- },
- [12323]={
-  kcat=1,
- },
- [12324]={
-  kcat=1,
- },
- [12325]={
-  kcat=1,
- },
- [12326]={
-  kcat=1,
- },
- [12327]={
-  kcat=1,
- },
- [12328]={
-  kcat=1,
- },
- [12329]={
-  kcat=1,
- },
- [12330]={
-  kcat=1,
- },
- [12331]={
-  kcat=1,
- },
- [12332]={
-  kcat=1,
- },
- [12333]={
-  kcat=1,
- },
- [12334]={
-  kcat=1,
- },
- [12335]={
-  kcat=1,
- },
- [12336]={
-  kcat=1,
- },
- [12337]={
-  kcat=1,
- },
- [12338]={
-  kcat=1,
- },
- [12339]={
-  kcat=1,
-  pre=10000,
- },
- [12340]={
-  kcat=1,
-  pre=10000,
- },
- [12341]={
-  kcat=1,
-  pre=10000,
- },
- [12342]={
-  kcat=1,
- },
- [12343]={
-  kcat=1,
- },
- [12344]={
-  kcat=1,
- },
- [12345]={
-  kcat=1,
- },
- [12346]={
-  kcat=1,
- },
- [12347]={
-  kcat=1,
-  pre=10000,
- },
- [12348]={
-  kcat=1,
- },
- [12349]={
-  kcat=1,
- },
- [12350]={
-  kcat=1,
- },
- [12351]={
-  kcat=1,
- },
- [12353]={
-  pre=150,
- },
- [12355]={
-  pre=150,
- },
- [12357]={
-  pre=150,
- },
- [12359]={
-  pre=150,
- },
- [12361]={
-  pre=150,
- },
- [12387]={
-  pre=150,
- },
- [12419]={
-  pre=150,
- },
- [12421]={
-  pre=150,
- },
- [12423]={
-  pre=150,
- },
- [12430]={
-  pre=150,
- },
- [12437]={
-  pre=150,
- },
- [12438]={
-  pre=150,
- },
- [12443]={
-  pre=10000,
- },
- [12444]={
-  pre=10000,
- },
- [12445]={
-  pre=10000,
- },
- [12446]={
-  pre=10000,
- },
- [12449]={
-  pre=150,
- },
- [12451]={
-  pre=150,
- },
- [12453]={
-  pre=150,
- },
- [12455]={
-  pre=150,
- },
- [12457]={
-  pre=150,
- },
- [12483]={
-  pre=150,
- },
- [12515]={
-  pre=150,
- },
- [12517]={
-  pre=150,
- },
- [12519]={
-  pre=150,
- },
- [12526]={
-  pre=150,
- },
- [12533]={
-  pre=150,
- },
- [12534]={
-  pre=150,
- },
- [12539]={
-  pre=10000,
- },
- [12540]={
-  pre=10000,
- },
- [12541]={
-  pre=10000,
- },
- [12542]={
-  pre=10000,
- },
- [12784]={
-  pre=150,
- },
- [12785]={
-  pre=150,
- },
- [12786]={
-  pre=150,
- },
- [12787]={
-  pre=150,
- },
- [12788]={
-  pre=150,
- },
- [12789]={
-  pre=150,
- },
- [12790]={
-  pre=150,
- },
- [12791]={
-  pre=150,
- },
- [12792]={
-  pre=150,
- },
- [12793]={
-  pre=150,
- },
- [12794]={
-  pre=150,
- },
- [12795]={
-  pre=150,
- },
- [12796]={
-  pre=150,
- },
- [12797]={
-  pre=150,
- },
- [12798]={
-  pre=150,
- },
- [12799]={
-  pre=150,
- },
- [65280]={
-  kcat=1,
- },
- [65281]={
-  kcat=1,
-  pre=10000,
- },
- [65282]={
-  kcat=1,
- },
- [65283]={
-  kcat=1,
-  post=200,
- },
- [65284]={
-  kcat=1,
-  post=200,
- },
- [65285]={
-  kcat=1,
-  post=200,
- },
- [65286]={
-  kcat=1,
-  post=200,
- },
- [65287]={
-  kcat=1,
- },
- [65288]={
-  kcat=1,
-  post=10000,
-  xsp=1,
- },
- [65289]={
-  kcat=1,
-  pre=10000,
-  xsp=2,
- },
- [65290]={
-  kcat=1,
- },
- [65291]={
-  kcat=1,
-  pre=200,
- },
- [65292]={
-  kcat=1,
-  pre=10000,
-  xsp=2,
- },
- [65293]={
-  kcat=1,
-  pre=200,
- },
- [65294]={
-  kcat=1,
-  pre=10000,
-  xsp=2,
- },
- [65295]={
-  kcat=1,
- },
- [65296]={
-  kcat=1,
- },
- [65297]={
-  kcat=1,
- },
- [65298]={
-  kcat=1,
- },
- [65299]={
-  kcat=1,
- },
- [65300]={
-  kcat=1,
- },
- [65301]={
-  kcat=1,
- },
- [65302]={
-  kcat=1,
- },
- [65303]={
-  kcat=1,
- },
- [65304]={
-  kcat=1,
- },
- [65305]={
-  kcat=1,
- },
- [65306]={
-  kcat=1,
-  pre=10000,
- },
- [65307]={
-  kcat=1,
-  pre=10000,
-  xsp=2,
- },
- [65308]={
-  kcat=1,
- },
- [65309]={
-  kcat=1,
-  pre=200,
- },
- [65310]={
-  kcat=1,
- },
- [65311]={
-  kcat=1,
-  pre=10000,
-  xsp=2,
- },
- [65312]={
-  kcat=1,
- },
- [65313]={
-  kcat=1,
- },
- [65314]={
-  kcat=1,
- },
- [65315]={
-  kcat=1,
- },
- [65316]={
-  kcat=1,
- },
- [65317]={
-  kcat=1,
- },
- [65318]={
-  kcat=1,
- },
- [65319]={
-  kcat=1,
- },
- [65320]={
-  kcat=1,
- },
- [65321]={
-  kcat=1,
- },
- [65322]={
-  kcat=1,
- },
- [65323]={
-  kcat=1,
- },
- [65324]={
-  kcat=1,
- },
- [65325]={
-  kcat=1,
- },
- [65326]={
-  kcat=1,
- },
- [65327]={
-  kcat=1,
- },
- [65328]={
-  kcat=1,
- },
- [65329]={
-  kcat=1,
- },
- [65330]={
-  kcat=1,
- },
- [65331]={
-  kcat=1,
- },
- [65332]={
-  kcat=1,
- },
- [65333]={
-  kcat=1,
- },
- [65334]={
-  kcat=1,
- },
- [65335]={
-  kcat=1,
- },
- [65336]={
-  kcat=1,
- },
- [65337]={
-  kcat=1,
- },
- [65338]={
-  kcat=1,
- },
- [65339]={
-  kcat=1,
-  post=10000,
-  xsp=1,
- },
- [65340]={
-  kcat=1,
- },
- [65341]={
-  kcat=1,
-  pre=10000,
-  xsp=2,
- },
- [65342]={
-  kcat=1,
- },
- [65343]={
-  kcat=1,
- },
- [65344]={
-  kcat=1,
-  post=10000,
- },
- [65345]={
-  kcat=1,
- },
- [65346]={
-  kcat=1,
- },
- [65347]={
-  kcat=1,
- },
- [65348]={
-  kcat=1,
- },
- [65349]={
-  kcat=1,
- },
- [65350]={
-  kcat=1,
- },
- [65351]={
-  kcat=1,
- },
- [65352]={
-  kcat=1,
- },
- [65353]={
-  kcat=1,
- },
- [65354]={
-  kcat=1,
- },
- [65355]={
-  kcat=1,
- },
- [65356]={
-  kcat=1,
- },
- [65357]={
-  kcat=1,
- },
- [65358]={
-  kcat=1,
- },
- [65359]={
-  kcat=1,
- },
- [65360]={
-  kcat=1,
- },
- [65361]={
-  kcat=1,
- },
- [65362]={
-  kcat=1,
- },
- [65363]={
-  kcat=1,
- },
- [65364]={
-  kcat=1,
- },
- [65365]={
-  kcat=1,
- },
- [65366]={
-  kcat=1,
- },
- [65367]={
-  kcat=1,
- },
- [65368]={
-  kcat=1,
- },
- [65369]={
-  kcat=1,
- },
- [65370]={
-  kcat=1,
- },
- [65371]={
-  kcat=1,
-  post=10000,
-  xsp=1,
- },
- [65372]={
-  kcat=1,
- },
- [65373]={
-  kcat=1,
-  pre=10000,
-  xsp=2,
- },
- [65374]={
-  kcat=1,
-  xsp=0,
- },
- [65375]={
-  kcat=1,
-  post=10000,
-  xsp=1,
- },
- [65376]={
-  kcat=1,
-  pre=10000,
-  xsp=2,
- },
- [65377]={
-  kcat=1,
-  pre=10000,
-  xsp=2,
- },
- [65378]={
-  kcat=1,
-  post=10000,
-  xsp=1,
- },
- [65379]={
-  kcat=1,
-  pre=10000,
-  xsp=2,
- },
- [65380]={
-  kcat=1,
-  pre=10000,
-  xsp=2,
- },
- [65381]={
-  kcat=1,
- },
- [65382]={
-  kcat=1,
- },
- [65383]={
-  kcat=1,
- },
- [65384]={
-  kcat=1,
- },
- [65385]={
-  kcat=1,
- },
- [65386]={
-  kcat=1,
- },
- [65387]={
-  kcat=1,
- },
- [65388]={
-  kcat=1,
- },
- [65389]={
-  kcat=1,
- },
- [65390]={
-  kcat=1,
- },
- [65391]={
-  kcat=1,
- },
- [65392]={
-  kcat=1,
- },
- [65393]={
-  kcat=1,
- },
- [65394]={
-  kcat=1,
- },
- [65395]={
-  kcat=1,
- },
- [65396]={
-  kcat=1,
- },
- [65397]={
-  kcat=1,
- },
- [65398]={
-  kcat=1,
- },
- [65399]={
-  kcat=1,
- },
- [65400]={
-  kcat=1,
- },
- [65401]={
-  kcat=1,
- },
- [65402]={
-  kcat=1,
- },
- [65403]={
-  kcat=1,
- },
- [65404]={
-  kcat=1,
- },
- [65405]={
-  kcat=1,
- },
- [65406]={
-  kcat=1,
- },
- [65407]={
-  kcat=1,
- },
- [65408]={
-  kcat=1,
- },
- [65409]={
-  kcat=1,
- },
- [65410]={
-  kcat=1,
- },
- [65411]={
-  kcat=1,
- },
- [65412]={
-  kcat=1,
- },
- [65413]={
-  kcat=1,
- },
- [65414]={
-  kcat=1,
- },
- [65415]={
-  kcat=1,
- },
- [65416]={
-  kcat=1,
- },
- [65417]={
-  kcat=1,
- },
- [65418]={
-  kcat=1,
- },
- [65419]={
-  kcat=1,
- },
- [65420]={
-  kcat=1,
- },
- [65421]={
-  kcat=1,
- },
- [65422]={
-  kcat=1,
- },
- [65423]={
-  kcat=1,
- },
- [65424]={
-  kcat=1,
- },
- [65425]={
-  kcat=1,
- },
- [65426]={
-  kcat=1,
- },
- [65427]={
-  kcat=1,
- },
- [65428]={
-  kcat=1,
- },
- [65429]={
-  kcat=1,
- },
- [65430]={
-  kcat=1,
- },
- [65431]={
-  kcat=1,
- },
- [65432]={
-  kcat=1,
- },
- [65433]={
-  kcat=1,
- },
- [65434]={
-  kcat=1,
- },
- [65435]={
-  kcat=1,
- },
- [65436]={
-  kcat=1,
- },
- [65437]={
-  kcat=1,
- },
- [65438]={
-  kcat=1,
-  pre=10000,
- },
- [65439]={
-  kcat=1,
-  pre=10000,
- },
- [65440]={
-  kcat=1,
- },
- [65441]={
-  kcat=1,
- },
- [65442]={
-  kcat=1,
- },
- [65443]={
-  kcat=1,
- },
- [65444]={
-  kcat=1,
- },
- [65445]={
-  kcat=1,
- },
- [65446]={
-  kcat=1,
- },
- [65447]={
-  kcat=1,
- },
- [65448]={
-  kcat=1,
- },
- [65449]={
-  kcat=1,
- },
- [65450]={
-  kcat=1,
- },
- [65451]={
-  kcat=1,
- },
- [65452]={
-  kcat=1,
- },
- [65453]={
-  kcat=1,
- },
- [65454]={
-  kcat=1,
- },
- [65455]={
-  kcat=1,
- },
- [65456]={
-  kcat=1,
- },
- [65457]={
-  kcat=1,
- },
- [65458]={
-  kcat=1,
- },
- [65459]={
-  kcat=1,
- },
- [65460]={
-  kcat=1,
- },
- [65461]={
-  kcat=1,
- },
- [65462]={
-  kcat=1,
- },
- [65463]={
-  kcat=1,
- },
- [65464]={
-  kcat=1,
- },
- [65465]={
-  kcat=1,
- },
- [65466]={
-  kcat=1,
- },
- [65467]={
-  kcat=1,
- },
- [65468]={
-  kcat=1,
- },
- [65469]={
-  kcat=1,
- },
- [65470]={
-  kcat=1,
- },
- [65471]={
-  kcat=1,
- },
- [65472]={
-  kcat=1,
- },
- [65473]={
-  kcat=1,
- },
- [65474]={
-  kcat=1,
- },
- [65475]={
-  kcat=1,
- },
- [65476]={
-  kcat=1,
- },
- [65477]={
-  kcat=1,
- },
- [65478]={
-  kcat=1,
- },
- [65479]={
-  kcat=1,
- },
- [65480]={
-  kcat=1,
- },
- [65481]={
-  kcat=1,
- },
- [65482]={
-  kcat=1,
- },
- [65483]={
-  kcat=1,
- },
- [65484]={
-  kcat=1,
- },
- [65485]={
-  kcat=1,
- },
- [65486]={
-  kcat=1,
- },
- [65487]={
-  kcat=1,
- },
- [65488]={
-  kcat=1,
- },
- [65489]={
-  kcat=1,
- },
- [65490]={
-  kcat=1,
- },
- [65491]={
-  kcat=1,
- },
- [65492]={
-  kcat=1,
- },
- [65493]={
-  kcat=1,
- },
- [65494]={
-  kcat=1,
- },
- [65495]={
-  kcat=1,
- },
- [65496]={
-  kcat=1,
- },
- [65497]={
-  kcat=1,
- },
- [65498]={
-  kcat=1,
- },
- [65499]={
-  kcat=1,
- },
- [65500]={
-  kcat=1,
- },
- [65501]={
-  kcat=1,
- },
- [65502]={
-  kcat=1,
- },
- [65503]={
-  kcat=1,
- },
- [65504]={
-  kcat=1,
- },
- [65505]={
-  kcat=1,
- },
- [65506]={
-  kcat=1,
- },
- [65507]={
-  kcat=1,
- },
- [65508]={
-  kcat=1,
- },
- [65509]={
-  kcat=1,
-  xsp=0,
- },
- [65510]={
-  kcat=1,
- },
- [65511]={
-  kcat=1,
- },
- [65512]={
-  kcat=1,
- },
- [65513]={
-  kcat=1,
- },
- [65514]={
-  kcat=1,
- },
- [65515]={
-  kcat=1,
- },
- [65516]={
-  kcat=1,
- },
- [65517]={
-  kcat=1,
- },
- [65518]={
-  kcat=1,
- },
- [65519]={
-  kcat=1,
- },
+ [0]=500,
+ [1024]=12295,
+ [1025]=19968,
+ [1026]=20108,
+ [1027]=19977,
+ [1028]=22235,
+ [1029]=20116,
+ [1030]=20845,
+ [1031]=19971,
+ [1032]=20843,
+ [1033]=20061,
+ [2097185]=10000,
+ [2097186]=10000,
+ [2097191]=10000,
+ [2097193]=10000,
+ [2097194]=500,
+ [2097195]=500,
+ [2097197]=10000,
+ [2097198]=10000,
+ [2097199]=500,
+ [2097210]=10000,
+ [2097211]=10000,
+ [2097215]=10000,
+ [2097245]=10000,
+ [2097322]=10000,
+ [2097330]=10000,
+ [2097331]=10000,
+ [2097332]=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,
+ [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,
+ [4194341]=500,
+ [4194342]=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,
+ [4259589]=200,
+ [4259590]=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,
 }
index 793d658..6a345d3 100644 (file)
@@ -89,6 +89,10 @@ local function conv_jchar_to_hbox(head, sty)
    return head
 end 
 
+local MJT  = luatexja.stack_table_index.MJT
+local MJS  = luatexja.stack_table_index.MJS
+local MJSS = luatexja.stack_table_index.MJSS
+
 conv_jchar_to_hbox_A = 
 function (p, sty)
    if not p then return nil
@@ -99,11 +103,7 @@ function (p, sty)
    elseif p.id == id_mchar then
       local fam = has_attr(p, attr_jfam) or -1
       if (not is_math_letters[p.char]) and ltjc.is_ucs_in_japanese_char(p) and fam>=0 then
-        local mode = 'mjss'
-        if sty == 0 then mode = 'mjtext'
-        elseif sty == 1 then mode = 'mjscr'
-        end
-        local f = ltjs.get_penalty_table(mode, fam, -1, tex_getcount('ltj@@stack'))
+        local f = ltjs.get_penalty_table(MJT + 0x200000 * sty + fam, -1, tex_getcount('ltj@@stack'))
         if f ~= -1 then
            local q = node_new(id_sub_box)
            local r = node_new(id_glyph); r.next = nil
index f449013..bc3eb8d 100644 (file)
@@ -112,7 +112,7 @@ local function cid_to_char(fmtable, fn)
    local fi = fonts.ids[fn]
    if fi.cidinfo and fi.cidinfo.ordering == "Japan1" then
       fmtable.cid_char_type = {}
-      for i, v in pairs(fmtable.size_cache.chars) do
+      for i, v in pairs(fmtable.chars) do
         local j = string.match(i, "^AJ1%-([0-9]*)")
         if j then
            j = tonumber(fi.unicodes['Japan1.'..tostring(j)])
index 5b3ad29..668996d 100644 (file)
@@ -23,7 +23,6 @@ local node_insert_before = node.insert_before
 local node_insert_after = node.insert_after
 local round = tex.round
 
-
 local id_glyph = node.id('glyph')
 local id_kern = node.id('kern')
 local id_hlist = node.id('hlist')
@@ -64,7 +63,7 @@ local fshift =  { down = 0, left = 0}
 
 -- mode: true iff p will be always encapsuled by a hbox
 function capsule_glyph(p, dir, mode, met, class)
-   local char_data = met.size_cache.char_type[class]
+   local char_data = met.char_type[class]
    if not char_data then return node_next(p) end
    local fwidth, pwidth = char_data.width, p.width
    fwidth = (fwidth ~= 'prop') and fwidth or pwidth
index de985d5..3dfe2bb 100644 (file)
@@ -83,6 +83,7 @@ end
 
 -- EXT
 function set_stack_table(g,m,c,p,lb,ub)
+   print(g,m,c)
    local i = get_stack_level()
    if type(p)~='number' or p<lb or p>ub then
       ltjb.package_error('luatexja',
@@ -98,14 +99,11 @@ function set_stack_table(g,m,c,p,lb,ub)
                         "(-1 is used for denoting `math boundary')\n" ..
                         'So I changed this one to zero.')
       c=0
-   elseif not charprop_stack_table[i][c] then 
-      charprop_stack_table[i][c] = {} 
    end
-   charprop_stack_table[i][c][m] = p
+   charprop_stack_table[i][c+m] = p
   if g=='global' then
      for j,v in pairs(charprop_stack_table) do 
-       if not charprop_stack_table[j][c] then charprop_stack_table[j][c] = {} end
-       charprop_stack_table[j][c][m] = p
+       charprop_stack_table[j][c+m] = p
      end
   end
 end
@@ -119,14 +117,11 @@ function set_stack_font(g,m,c,p)
                         "The family number should in the range 0 .. 255.\n" ..
                          "I'm going to use 0 instead of that illegal family number.")
       c=0
-   elseif not charprop_stack_table[i][c] then 
-      charprop_stack_table[i][c] = {} 
    end
-   charprop_stack_table[i][c][m] = p
+   charprop_stack_table[i][c+m] = p
    if g=='global' then
      for j,v in pairs(charprop_stack_table) do 
-       if not charprop_stack_table[j][c] then charprop_stack_table[j][c] = {} end
-       charprop_stack_table[j][c][m] = p
+       charprop_stack_table[j][c+m] = p
      end
   end
 end
@@ -156,7 +151,6 @@ function set_stack_skip(g,m,sp)
 end
 
 -- These three functions are used in ltj-jfmglue.lua.
-local table_current_stack
 function report_stack_level(bsl)
    table_current_stack = charprop_stack_table[bsl]
 end
@@ -164,24 +158,15 @@ function fast_get_skip_table(m)
    return table_current_stack[m] 
       or { width = 0, stretch = 0, shrink = 0, stretch_order = 0, shrink_order = 0 }
 end
-function fast_get_penalty_table(m,c)
-   local i = table_current_stack[c]
-   return (i and i[m])
-end
-
-local empty_table = {}
-function fast_get_penalty_table_parent(c)
-   return table_current_stack[c] or empty_table
-end
 
 -- For other situations, use the following instead:
 function get_skip_table(m, idx)
    return charprop_stack_table[idx][m] 
       or { width = 0, stretch = 0, shrink = 0, stretch_order = 0, shrink_order = 0 }
 end
-function get_penalty_table(m,c,d, idx)
-   local i = charprop_stack_table[idx][c]
-   return (i and i[m]) or d
+function get_penalty_table(mc, d, idx)
+   local i = charprop_stack_table[idx][mc]
+   return i or d
 end
 
 
index bc29828..77befdf 100644 (file)
   \directlua{luatexja.compat.to_kansuji(\ltj@safe@num{#1}) }%
 }
 \define@key[ltj]{japaram}{kansujichar}{%
-  \expandafter\ltj@@set@stack#1:{ksj}{0}{0x7FFFFFFF}}
+  \expandafter\ltj@@set@stack#1:{KSJ}{0}{0x7FFFFFFF}}
 
 \ltjsetparameter{kansujichar={0,`〇}}
 \ltjsetparameter{kansujichar={1,`一}}
index ea54c3e..f0eedea 100644 (file)
 
 % prebreakpenalty = {<char_code>, <penalty>}
 \define@key[ltj]{japaram}{kcatcode}{%
-  \expandafter\ltj@@set@stack#1:{kcat}{0}{0x7FFFFFFF}}
+  \expandafter\ltj@@set@stack#1:{KCAT}{0}{0x7FFFFFFF}}
 \define@key[ltj]{japaram}{prebreakpenalty}{%
-  \expandafter\ltj@@set@stack#1:{pre}{-10000}{10000}}
+  \expandafter\ltj@@set@stack#1:{PRE}{-10000}{10000}}
 \define@key[ltj]{japaram}{postbreakpenalty}{%
-  \expandafter\ltj@@set@stack#1:{post}{-10000}{10000}}
+  \expandafter\ltj@@set@stack#1:{POST}{-10000}{10000}}
 \def\ltj@@set@stack#1,#2:#3#4#5{%
-  \directlua{luatexja.stack.set_stack_table(luatexja.isglobal, \asluastring{#3},
+  \directlua{luatexja.stack.set_stack_table(luatexja.isglobal, luatexja.stack_table_index.#3,
     \ltj@safe@num@or{nil}{#1},\ltj@safe@num@or{nil}{#2},#4,#5)}}
 
 % jatextfont = {<char_code>, <font_cs>}
 \define@key[ltj]{japaram}{jatextfont}{%
-  \expandafter\ltj@@set@stackfont#1:{mjtext}}
+  \expandafter\ltj@@set@stackfont#1:{MJT}}
 \define@key[ltj]{japaram}{jascriptfont}{%
-  \expandafter\ltj@@set@stackfont#1:{mjscr}}
+  \expandafter\ltj@@set@stackfont#1:{MJS}}
 \define@key[ltj]{japaram}{jascriptscriptfont}{%
-  \expandafter\ltj@@set@stackfont#1:{mjss}}
+  \expandafter\ltj@@set@stackfont#1:{MJSS}}
 \protected\def\ltj@@set@stackfont#1,#2:#3{%
   \ltj@reset@globaldefs
   \ltj@tempcnta=\ltj@curjfnt\ltj@curjfnt=-1 #2%
     {\string#2 is not a control sequence that represents \MessageBreak
      a Japanese font}{}%
   \else
-    \directlua{luatexja.stack.set_stack_font(luatexja.isglobal, \asluastring{#3},
+    \directlua{luatexja.stack.set_stack_font(luatexja.isglobal, luatexja.stack_table_index.#3,
     \ltj@safe@num@or{nil}{#1}, \the\ltj@curjfnt)}%
   \fi
   \ltj@curjfnt=\ltj@tempcnta
   \def\ltj@tempa{preonly}\ifx\ltj@temp\ltj@tempa\def\ltj@temp{1}\fi
   \def\ltj@tempa{postonly}\ifx\ltj@temp\ltj@tempa\def\ltj@temp{2}\fi
   \def\ltj@tempa{allow}\ifx\ltj@temp\ltj@tempa\def\ltj@temp{3}\fi
-  \directlua{luatexja.stack.set_stack_table(luatexja.isglobal, 'xsp', 
+  \directlua{luatexja.stack.set_stack_table(luatexja.isglobal,
+    luatexja.stack_table_index.XSP,
     \ltj@safe@num@or{nil}{#1},
     \ltj@safe@num@or{nil}{\ltj@temp},0,3)}}
 
   \def\ltj@tempa{preonly}\ifx\ltj@temp\ltj@tempa\def\ltj@temp{1}\fi
   \def\ltj@tempa{postonly}\ifx\ltj@temp\ltj@tempa\def\ltj@temp{2}\fi
   \def\ltj@tempa{allow}\ifx\ltj@temp\ltj@tempa\def\ltj@temp{3}\fi
-  \directlua{luatexja.stack.set_stack_table(luatexja.isglobal, 'xsp', 
+  \directlua{luatexja.stack.set_stack_table(luatexja.isglobal,
+    luatexja.stack_table_index.XSP,
     \ltj@safe@num@or{nil}{#1},
     \ltj@safe@num@or{nil}{\ltj@temp},0,3)}}
 
 
 % jcharwidowpenalty = <count>
 \define@key[ltj]{japaram}{jcharwidowpenalty}{%      %COUNT
-  \ltj@@set@stack0,#1:{jwp}{-10000}{10000}}
+  \ltj@@set@stack0,#1:{JWP}{-10000}{10000}}
 
 % differentjfm = { large | small | average | pleft | pright | paverage | both}
 \define@choicekey*+[ltj]{japaram}{differentjfm}[\ltj@temp\ltj@tempr]%
index 0fe8c2c..f26fa61 100644 (file)
@@ -49,6 +49,19 @@ icflag_table.IC_PROCESSED = 12
 icflag_table.BOXBDD       = 15
 icflag_table.PROCESSED_BEGIN_FLAG = 32
 
+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.JWP  = 0 -- 0のみ
+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 load_module = luatexja.load_module
 load_module('base');      local ltjb = luatexja.base
 load_module('rmlgbm');    local ltjr = luatexja.rmlgbm -- must be 1st
@@ -143,16 +156,17 @@ end
 
 -- EXT: print parameters that don't need arguments
 function luatexja.ext_get_parameter_unary(k)
+   local t = tex.getcount('ltj@@stack')
    if k == 'yalbaselineshift' then
       tex.write(print_scaled(tex.getattribute('ltj@yablshift'))..'pt')
    elseif k == 'yjabaselineshift' then
       tex.write(print_scaled(tex.getattribute('ltj@ykblshift'))..'pt')
    elseif k == 'kanjiskip' then
-      tex.write(print_spec(ltjs.get_skip_table('kanjiskip', tex.getcount('ltj@@stack'))))
+      tex.write(print_spec(ltjs.get_skip_table('kanjiskip', t)))
    elseif k == 'xkanjiskip' then
-      tex.write(print_spec(ltjs.get_skip_table('xkanjiskip', tex.getcount('ltj@@stack'))))
+      tex.write(print_spec(ltjs.get_skip_table('xkanjiskip', t)))
    elseif k == 'jcharwidowpenalty' then
-      tex.write(ltjs.get_penalty_table('jwp', 0, 0, tex.getcount('ltj@@stack')))
+      tex.write(ltjs.get_penalty_table(stack_table_index.JWP, 0, t))
    elseif k == 'autospacing' then
       tex.write(tex.getattribute('ltj@autospc'))
    elseif k == 'autoxspacing' then
@@ -181,6 +195,7 @@ end
 
 -- EXT: print parameters that need arguments
 function luatexja.ext_get_parameter_binary(k,c)
+   local t = tex.getcount('ltj@@stack')
    if type(c)~='number' then
       ltjb.package_error('luatexja',
                         'invalid the second argument (' .. tostring(c) .. ')',
@@ -208,15 +223,15 @@ function luatexja.ext_get_parameter_binary(k,c)
         c=0
       end
       if k == 'prebreakpenalty' then
-        tex.write(ltjs.get_penalty_table('pre', c, 0, tex.getcount('ltj@@stack')))
+        tex.write(ltjs.get_penalty_table(stack_table_index.PRE + c, 0, t))
       elseif k == 'postbreakpenalty' then
-        tex.write(ltjs.get_penalty_table('post', c, 0, tex.getcount('ltj@@stack')))
+        tex.write(ltjs.get_penalty_table(stack_table_index.POST+ c, 0, t))
       elseif k == 'kcatcode' then
-        tex.write(ltjs.get_penalty_table('kcat', c, 0, tex.getcount('ltj@@stack')))
+        tex.write(ltjs.get_penalty_table(stack_table_index.KCAT+ c, 0, t))
       elseif k == 'chartorange' then 
         tex.write(ltjc.char_to_range(c))
       elseif k == 'jaxspmode' or k == 'alxspmode' then
-        tex.write(ltjs.get_penalty_table('xsp', c, 3, tex.getcount('ltj@@stack')))
+        tex.write(ltjs.get_penalty_table(stack_table_index.XSP + c, 3, t))
       end
    end
 end