# Model_Timeline_TimelineData_211.luac
; fn @TimelineData.lua  line 0-0 np=0 va=1 ms=4 code=37 consts=16 upvals=1 protos=8
;   K[0]='TimelineData'
;   K[1]='__index'
;   K[2]='Create'
;   K[3]='TimelineData'
;   K[4]='Init'
;   K[5]='Reset'
;   K[6]='AddStep'
;   K[7]='TimelineStep'
;   K[8]='Create'
;   K[9]='TimelineStep'
;   K[10]='Init'
;   K[11]='/'
;   K[12]='%([^()]+%)'
;   K[13]='TimelineStep'
;   K[14]='GetPositionList'
;   K[15]='GetFinalState'
;   upvals: _ENV
;   locals: split(29-37), patten(30-37)
0000  NEWTABLE  R0 = {} (0 items)
0001  SETTABUP  _ENV[K0('TimelineData')] = R0
0002  GETTABUP  R0 = _ENV[K0('TimelineData')]
0003  GETTABUP  R1 = _ENV[K0('TimelineData')]
0004  SETTABLE  R0[K1('__index')] = R1
0005  GETTABUP  R0 = _ENV[K0('TimelineData')]
0006  CLOSURE   R1 = closure proto0
0007  SETTABLE  R0[K2('Create')] = R1
0008  GETTABUP  R0 = _ENV[K3('TimelineData')]
0009  CLOSURE   R1 = closure proto1
0010  SETTABLE  R0[K4('Init')] = R1
0011  GETTABUP  R0 = _ENV[K3('TimelineData')]
0012  CLOSURE   R1 = closure proto2
0013  SETTABLE  R0[K5('Reset')] = R1
0014  GETTABUP  R0 = _ENV[K3('TimelineData')]
0015  CLOSURE   R1 = closure proto3
0016  SETTABLE  R0[K6('AddStep')] = R1
0017  NEWTABLE  R0 = {} (0 items)
0018  SETTABUP  _ENV[K7('TimelineStep')] = R0
0019  GETTABUP  R0 = _ENV[K7('TimelineStep')]
0020  GETTABUP  R1 = _ENV[K7('TimelineStep')]
0021  SETTABLE  R0[K1('__index')] = R1
0022  GETTABUP  R0 = _ENV[K7('TimelineStep')]
0023  CLOSURE   R1 = closure proto4
0024  SETTABLE  R0[K8('Create')] = R1
0025  GETTABUP  R0 = _ENV[K9('TimelineStep')]
0026  CLOSURE   R1 = closure proto5
0027  SETTABLE  R0[K10('Init')] = R1
0028  LOADK     R0 = K11 '/'
0029  LOADK     R1 = K12 '%([^()]+%)'
0030  GETTABUP  R2 = _ENV[K13('TimelineStep')]
0031  CLOSURE   R3 = closure proto6
0032  SETTABLE  R2[K14('GetPositionList')] = R3
0033  GETTABUP  R2 = _ENV[K13('TimelineStep')]
0034  CLOSURE   R3 = closure proto7
0035  SETTABLE  R2[K15('GetFinalState')] = R3
0036  RETURN    return R0..R-1
; ---------- proto0 [Create] ----------
  ; fn ?  line 13-20 np=2 va=0 ms=5 code=10 consts=5 upvals=1 protos=0
  ;   K[0]='setmetatable'
  ;   K[1]='id'
  ;   K[2]='chapterName'
  ;   K[3]='stepList'
  ;   K[4]='TimelineData'
  ;   upvals: _ENV
  ;   locals: id(0-10), chapterName(0-10), data(8-10)
  0000  GETTABUP  R2 = _ENV[K0('setmetatable')]
  0001  NEWTABLE  R3 = {} (0 items)
  0002  SETTABLE  R3[K1('id')] = R0
  0003  SETTABLE  R3[K2('chapterName')] = R1
  0004  NEWTABLE  R4 = {} (0 items)
  0005  SETTABLE  R3[K3('stepList')] = R4
  0006  GETTABUP  R4 = _ENV[K4('TimelineData')]
  0007  CALL      R2 = call(R2, 1 args, 2 rets)
  0008  RETURN    return R2..R1
  0009  RETURN    return R0..R-1
; ---------- proto1 [Init] ----------
  ; fn ?  line 22-55 np=1 va=0 ms=19 code=96 consts=30 upvals=1 protos=0
  ;   K[0]='Reset'
  ;   K[1]='chapterName'
  ;   K[2]='id'
  ;   K[3]='REVIEW_TIMELINE_ID'
  ;   K[4]='CHAPTER_START_TIMELINE_ID'
  ;   K[5]='GM'
  ;   K[6]='TaskManager'
  ;   K[7]='GetTaskSlotsChanges'
  ;   K[8]='ipairs'
  ;   K[9]='Slot'
  ;   K[10]='State'
  ;   K[11]='Log'
  ;   K[12]='Assert'
  ;   K[13]=nil
  ;   K[14]='tostring'
  ;   K[15]=' 配置了重复的 slotId：'
  ;   K[16]='mapSlotChanges'
  ;   K[17]=1
  ;   K[18]='pairs'
  ;   K[19]='stepList'
  ;   K[20]='Init'
  ;   K[21]='slotId'
  ;   K[22]='type'
  ;   K[23]='ETimelineAction'
  ;   K[24]='Cover'
  ;   K[25]='CoverNode'
  ;   K[26]='Error'
  ;   K[27]='时间线 '
  ;   K[28]=' 中的 slot 没有在任务中找到对应的 state。 slotId:'
  ;   K[29]='stepCount'
  ;   upvals: _ENV
  ;   locals: self(0-96), arrSlotChanges(19-47), mapSlotChanges(20-47), state(21-47), slotId(21-47), (for generator)(24-46), (for state)(24-46), (for control)(24-46), _(25-44), changeData(25-44), count(48-96), (for generator)(51-92), (for state)(51-92), (for control)(51-92), step(52-90), v(52-90), (for generator)(55-90), (for state)(55-90), (for control)(55-90), _(56-88), data(56-88), slotId(59-88)
  0000  SELF      R2 = R0[K0('Reset')] (self)
  0001  CALL      R1 = call(R1, 0 args, 1 rets)
  0002  GETTABLE  R1 = R0[K1('chapterName')]
  0003  TEST      if not R1 then   -> -131067
  0004  JMP       (jump)   -> 47
  0005  GETTABLE  R1 = R0[K2('id')]
  0006  GETTABUP  R2 = _ENV[K3('REVIEW_TIMELINE_ID')]
  0007  EQ        if R1 eq R2   -> -130549
  0008  JMP       (jump)   -> 47
  0009  GETTABLE  R1 = R0[K2('id')]
  0010  GETTABUP  R2 = _ENV[K4('CHAPTER_START_TIMELINE_ID')]
  0011  EQ        if R1 eq R2   -> -130545
  0012  JMP       (jump)   -> 47
  0013  GETTABUP  R1 = _ENV[K5('GM')]
  0014  GETTABLE  R1 = R1[K6('TaskManager')]
  0015  SELF      R2 = R1[K7('GetTaskSlotsChanges')] (self)
  0016  GETTABLE  R3 = R0[K2('id')]
  0017  GETTABLE  R4 = R0[K1('chapterName')]
  0018  CALL      R1 = call(R1, 1 args, 3 rets)
  0019  NEWTABLE  R2 = {} (0 items)
  0020  LOADNIL   R3..R3 = nil
  0021  GETTABUP  R5 = _ENV[K8('ipairs')]
  0022  MOVE      R6 = R0
  0023  CALL      R5 = call(R5, 3 args, 1 rets)
  0024  JMP       (jump)   -> 44
  0025  GETTABLE  R4 = R9[K9('Slot')]
  0026  GETTABLE  R3 = R9[K10('State')]
  0027  GETTABUP  R10 = _ENV[K11('Log')]
  0028  GETTABLE  R10 = R10[K12('Assert')]
  0029  GETTABLE  R11 = R2[R4]
  0030  EQ        if R1 eq K13(nil)   -> -125139
  0031  JMP       (jump)   -> 33
  0032  LOADBOOL  R11 = false
  0033  LOADBOOL  R11 = true
  0034  GETTABUP  R12 = _ENV[K14('tostring')]
  0035  GETTABLE  R13 = R0[K2('id')]
  0036  CALL      R12 = call(R12, 1 args, 1 rets)
  0037  LOADK     R13 = K15 ' 配置了重复的 slotId：'
  0038  GETTABUP  R14 = _ENV[K14('tostring')]
  0039  MOVE      R15 = R0
  0040  CALL      R14 = call(R14, 1 args, 1 rets)
  0041  CONCAT    R12 = concat(R12..R12)
  0042  CALL      R10 = call(R10, 0 args, 2 rets)
  0043  SETTABLE  R2[R4] = R3
  0044  TFORCALL  tforcall R5
  0045  TFORLOOP  tforloop R7(sBx=-21)   -> 25
  0046  SETTABLE  R0[K16('mapSlotChanges')] = R2
  0047  LOADK     R1 = K17 1
  0048  GETTABUP  R2 = _ENV[K18('pairs')]
  0049  GETTABLE  R3 = R0[K19('stepList')]
  0050  CALL      R2 = call(R2, 3 args, 1 rets)
  0051  JMP       (jump)   -> 90
  0052  GETTABUP  R7 = _ENV[K18('pairs')]
  0053  MOVE      R8 = R0
  0054  CALL      R7 = call(R7, 3 args, 1 rets)
  0055  JMP       (jump)   -> 88
  0056  SELF      R13 = R11[K20('Init')] (self)
  0057  CALL      R12 = call(R12, 0 args, 1 rets)
  0058  GETTABLE  R12 = R11[K21('slotId')]
  0059  GETTABLE  R13 = R11[K22('type')]
  0060  GETTABUP  R14 = _ENV[K23('ETimelineAction')]
  0061  GETTABLE  R14 = R14[K24('Cover')]
  0062  EQ        if R1 eq R14   -> -124338
  0063  JMP       (jump)   -> 88
  0064  GETTABLE  R13 = R11[K22('type')]
  0065  GETTABUP  R14 = _ENV[K23('ETimelineAction')]
  0066  GETTABLE  R14 = R14[K25('CoverNode')]
  0067  EQ        if R1 eq R14   -> -124333
  0068  JMP       (jump)   -> 88
  0069  GETTABLE  R13 = R0[K16('mapSlotChanges')]
  0070  TEST      if not R13 then   -> -131000
  0071  JMP       (jump)   -> 88
  0072  TEST      if not R12 then   -> -130998
  0073  JMP       (jump)   -> 88
  0074  GETTABLE  R13 = R0[K16('mapSlotChanges')]
  0075  GETTABLE  R13 = R13[R12]
  0076  EQ        if R0 eq K13(nil)   -> -124069
  0077  JMP       (jump)   -> 88
  0078  GETTABUP  R13 = _ENV[K11('Log')]
  0079  GETTABLE  R13 = R13[K26('Error')]
  0080  LOADK     R14 = K27 '时间线 '
  0081  GETTABLE  R15 = R0[K2('id')]
  0082  LOADK     R16 = K28 ' 中的 slot 没有在任务中找到对应的 state。 slotId:'
  0083  GETTABUP  R17 = _ENV[K14('tostring')]
  0084  MOVE      R18 = R0
  0085  CALL      R17 = call(R17, 1 args, 1 rets)
  0086  CONCAT    R14 = concat(R14..R14)
  0087  CALL      R13 = call(R13, 0 args, 1 rets)
  0088  TFORCALL  tforcall R7
  0089  TFORLOOP  tforloop R9(sBx=-34)   -> 56
  0090  TFORCALL  tforcall R2
  0091  TFORLOOP  tforloop R4(sBx=-40)   -> 52
  0092  GETTABLE  R2 = R0[K19('stepList')]
  0093  LEN       R2 = len R0
  0094  SETTABLE  R0[K29('stepCount')] = R2
  0095  RETURN    return R0..R-1
; ---------- proto2 [Reset] ----------
  ; fn ?  line 57-59 np=1 va=0 ms=2 code=1 consts=0 upvals=0 protos=0
  ;   locals: self(0-1)
  0000  RETURN    return R0..R-1
; ---------- proto3 [AddStep] ----------
  ; fn ?  line 61-69 np=2 va=0 ms=7 code=17 consts=5 upvals=1 protos=0
  ;   K[0]='Order'
  ;   K[1]='stepList'
  ;   K[2]=1
  ;   K[3]='TimelineStep'
  ;   K[4]='Create'
  ;   upvals: _ENV
  ;   locals: self(0-17), config(0-17), order(1-17), stepsForOneOrder(3-17)
  0000  GETTABLE  R2 = R1[K0('Order')]
  0001  GETTABLE  R3 = R0[K1('stepList')]
  0002  GETTABLE  R3 = R3[R2]
  0003  TEST      if not R3 then   -> -131066
  0004  JMP       (jump)   -> 9
  0005  NEWTABLE  R4 = {} (0 items)
  0006  MOVE      R3 = R0
  0007  GETTABLE  R4 = R0[K1('stepList')]
  0008  SETTABLE  R4[R2] = R3
  0009  LEN       R4 = len R0
  0010  ADD       R4 = K2(1) add R4
  0011  GETTABUP  R5 = _ENV[K3('TimelineStep')]
  0012  GETTABLE  R5 = R5[K4('Create')]
  0013  MOVE      R6 = R0
  0014  CALL      R5 = call(R5, 1 args, 1 rets)
  0015  SETTABLE  R3[R4] = R5
  0016  RETURN    return R0..R-1
; ---------- proto4 [Create] ----------
  ; fn ?  line 73-78 np=1 va=0 ms=4 code=7 consts=3 upvals=1 protos=0
  ;   K[0]='setmetatable'
  ;   K[1]='data'
  ;   K[2]='TimelineStep'
  ;   upvals: _ENV
  ;   locals: tbData(0-7), data(5-7)
  0000  GETTABUP  R1 = _ENV[K0('setmetatable')]
  0001  NEWTABLE  R2 = {} (0 items)
  0002  SETTABLE  R2[K1('data')] = R0
  0003  GETTABUP  R3 = _ENV[K2('TimelineStep')]
  0004  CALL      R1 = call(R1, 1 args, 2 rets)
  0005  RETURN    return R1..R0
  0006  RETURN    return R0..R-1
; ---------- proto5 [Init] ----------
  ; fn ?  line 81-198 np=1 va=0 ms=15 code=384 consts=71 upvals=1 protos=0
  ;   K[0]='data'
  ;   K[1]='type'
  ;   K[2]='Type'
  ;   K[3]='ETimelineAction'
  ;   K[4]='Plot'
  ;   K[5]='StringUtil'
  ;   K[6]='Split'
  ;   K[7]='Content'
  ;   K[8]=''
  ;   K[9]='#'
  ;   K[10]='storyId'
  ;   K[11]=1
  ;   K[12]='Log'
  ;   K[13]='Assert'
  ;   K[14]='IsNilOrEmpty'
  ;   K[15]='时间线 plot content 配置错误'
  ;   K[16]='delay'
  ;   K[17]='tonumber'
  ;   K[18]=2
  ;   K[19]=0
  ;   K[20]='SlotActions'
  ;   K[21]=';'
  ;   K[22]='changeDelay'
  ;   K[23]='slotAction 时间线配置错误'
  ;   K[24]='tostring'
  ;   K[25]='eSlotAnimationType'
  ;   K[26]='animationConfig'
  ;   K[27]=3
  ;   K[28]='arrSlotActions'
  ;   K[29]='slotId'
  ;   K[30]='Slot'
  ;   K[31]='reviewState'
  ;   K[32]='ReviewState'
  ;   K[33]='SlotAnimator'
  ;   K[34]='SlotSpines'
  ;   K[35]='-'
  ;   K[36]='state'
  ;   K[37]='animationName'
  ;   K[38]='CameraMove'
  ;   K[39]=','
  ;   K[40]='CameraMove格式错误'
  ;   K[41]='pos'
  ;   K[42]='TimelineStep'
  ;   K[43]='GetPositionList'
  ;   K[44]='scale'
  ;   K[45]=nil
  ;   K[46]='duration'
  ;   K[47]='delayTime'
  ;   K[48]='RoleAction'
  ;   K[49]='RoleAction格式错误'
  ;   K[50]='bReverse'
  ;   K[51]='true'
  ;   K[52]='waitTime'
  ;   K[53]=4
  ;   K[54]=5
  ;   K[55]='ConstructionAudio'
  ;   K[56]='arrAudioData'
  ;   K[57]='ipairs'
  ;   K[58]='audio格式错误'
  ;   K[59]='AudioFileConfigName'
  ;   K[60]='HasConfig'
  ;   K[61]='audioName'
  ;   K[62]='Error'
  ;   K[63]='audioFile 不存在:'
  ;   K[64]='Cover'
  ;   K[65]='Cover slotId 为空'
  ;   K[66]='content'
  ;   K[67]='CoverNode'
  ;   K[68]='SplitToNum'
  ;   K[69]='nodeIndex'
  ;   K[70]='isHide'
  ;   upvals: _ENV
  ;   locals: self(0-384), data(1-384), arrPlotData(16-37), arrSlotActions(44-104), arrSlotActionSplit(52-104), actionCount(53-104), (for index)(66-99), (for limit)(66-99), (for step)(66-99), i(67-98), splits(72-98), eSlotAnimationType(84-98), animationConfig(87-98), slotAction(97-98), arrSlotActions(128-175), arrSlotActionSplit(136-175), (for index)(139-170), (for limit)(139-170), (for step)(139-170), i(140-169), splits(145-169), animationConfig(149-169), configSplits(154-169), slotAction(168-169), innerList(186-217), innerList(228-265), arrAudioDataStr(276-328), (for generator)(281-328), (for state)(281-328), (for control)(281-328), _(282-326), asplit(282-326), splits(287-326), audioName(297-326), delayTime(309-317), config(366-380)
  0000  GETTABLE  R1 = R0[K0('data')]
  0001  GETTABLE  R2 = R1[K2('Type')]
  0002  SETTABLE  R0[K1('type')] = R2
  0003  GETTABLE  R2 = R0[K1('type')]
  0004  GETTABUP  R3 = _ENV[K3('ETimelineAction')]
  0005  GETTABLE  R3 = R3[K4('Plot')]
  0006  EQ        if R0 eq R3   -> -130037
  0007  JMP       (jump)   -> 38
  0008  GETTABUP  R2 = _ENV[K5('StringUtil')]
  0009  GETTABLE  R2 = R2[K6('Split')]
  0010  GETTABLE  R3 = R1[K7('Content')]
  0011  TEST      if not R3 then   -> -131058
  0012  JMP       (jump)   -> 14
  0013  LOADK     R3 = K8 ''
  0014  LOADK     R4 = K9 '#'
  0015  CALL      R2 = call(R2, 1 args, 2 rets)
  0016  GETTABLE  R3 = R2[K11(1)]
  0017  TEST      if not R3 then   -> -131052
  0018  JMP       (jump)   -> 20
  0019  LOADK     R3 = K8 ''
  0020  SETTABLE  R0[K10('storyId')] = R3
  0021  GETTABUP  R3 = _ENV[K12('Log')]
  0022  GETTABLE  R3 = R3[K13('Assert')]
  0023  GETTABUP  R4 = _ENV[K5('StringUtil')]
  0024  GETTABLE  R4 = R4[K14('IsNilOrEmpty')]
  0025  GETTABLE  R5 = R0[K10('storyId')]
  0026  CALL      R4 = call(R4, 1 args, 1 rets)
  0027  NOT       R4 = not R0
  0028  LOADK     R5 = K15 '时间线 plot content 配置错误'
  0029  CALL      R3 = call(R3, 0 args, 2 rets)
  0030  GETTABUP  R3 = _ENV[K17('tonumber')]
  0031  GETTABLE  R4 = R2[K18(2)]
  0032  CALL      R3 = call(R3, 1 args, 1 rets)
  0033  TEST      if not R3 then   -> -131036
  0034  JMP       (jump)   -> 36
  0035  LOADK     R3 = K19 0
  0036  SETTABLE  R0[K16('delay')] = R3
  0037  JMP       (jump)   -> 383
  0038  GETTABLE  R2 = R0[K1('type')]
  0039  GETTABUP  R3 = _ENV[K3('ETimelineAction')]
  0040  GETTABLE  R3 = R3[K20('SlotActions')]
  0041  EQ        if R0 eq R3   -> -130002
  0042  JMP       (jump)   -> 105
  0043  NEWTABLE  R2 = {} (0 items)
  0044  GETTABUP  R3 = _ENV[K5('StringUtil')]
  0045  GETTABLE  R3 = R3[K6('Split')]
  0046  GETTABLE  R4 = R1[K7('Content')]
  0047  TEST      if not R4 then   -> -131022
  0048  JMP       (jump)   -> 50
  0049  LOADK     R4 = K8 ''
  0050  LOADK     R5 = K21 ';'
  0051  CALL      R3 = call(R3, 1 args, 2 rets)
  0052  LEN       R4 = len R0
  0053  GETTABUP  R5 = _ENV[K17('tonumber')]
  0054  GETTABLE  R6 = R3[R4]
  0055  CALL      R5 = call(R5, 1 args, 1 rets)
  0056  SETTABLE  R0[K22('changeDelay')] = R5
  0057  GETTABLE  R5 = R0[K22('changeDelay')]
  0058  TEST      if not R5 then   -> -131012
  0059  JMP       (jump)   -> 62
  0060  SUB       R4 = K11(1) sub R4
  0061  JMP       (jump)   -> 63
  0062  SETTABLE  R0[K22('changeDelay')] = K19(0)
  0063  LOADK     R5 = K11 1
  0064  MOVE      R6 = R0
  0065  LOADK     R7 = K11 1
  0066  FORPREP   forprep R5(sBx=31)   -> 98
  0067  GETTABUP  R9 = _ENV[K5('StringUtil')]
  0068  GETTABLE  R9 = R9[K6('Split')]
  0069  GETTABLE  R10 = R3[R8]
  0070  LOADK     R11 = K9 '#'
  0071  CALL      R9 = call(R9, 1 args, 2 rets)
  0072  GETTABUP  R10 = _ENV[K12('Log')]
  0073  GETTABLE  R10 = R10[K13('Assert')]
  0074  LEN       R11 = len R0
  0075  LE        if R1 le R11   -> 9304
  0076  JMP       (jump)   -> 78
  0077  LOADBOOL  R11 = false
  0078  LOADBOOL  R11 = true
  0079  LOADK     R12 = K23 'slotAction 时间线配置错误'
  0080  CALL      R10 = call(R10, 0 args, 2 rets)
  0081  GETTABUP  R10 = _ENV[K24('tostring')]
  0082  GETTABLE  R11 = R9[K11(1)]
  0083  CALL      R10 = call(R10, 1 args, 1 rets)
  0084  GETTABUP  R11 = _ENV[K24('tostring')]
  0085  GETTABLE  R12 = R9[K18(2)]
  0086  CALL      R11 = call(R11, 1 args, 1 rets)
  0087  NEWTABLE  R12 = {} (0 items)
  0088  SETTABLE  R12[K25('eSlotAnimationType')] = R10
  0089  SETTABLE  R12[K26('animationConfig')] = R11
  0090  GETTABUP  R13 = _ENV[K17('tonumber')]
  0091  GETTABLE  R14 = R9[K27(3)]
  0092  CALL      R13 = call(R13, 1 args, 1 rets)
  0093  TEST      if not R13 then   -> -130976
  0094  JMP       (jump)   -> 96
  0095  LOADK     R13 = K19 0
  0096  SETTABLE  R12[K16('delay')] = R13
  0097  SETTABLE  R2[R8] = R12
  0098  FORLOOP   forloop R5(sBx=-32)   -> 67
  0099  SETTABLE  R0[K28('arrSlotActions')] = R2
  0100  GETTABLE  R5 = R1[K30('Slot')]
  0101  SETTABLE  R0[K29('slotId')] = R5
  0102  GETTABLE  R5 = R1[K32('ReviewState')]
  0103  SETTABLE  R0[K31('reviewState')] = R5
  0104  JMP       (jump)   -> 383
  0105  GETTABLE  R2 = R0[K1('type')]
  0106  GETTABUP  R3 = _ENV[K3('ETimelineAction')]
  0107  GETTABLE  R3 = R3[K33('SlotAnimator')]
  0108  EQ        if R0 eq R3   -> -129935
  0109  JMP       (jump)   -> 122
  0110  GETTABUP  R2 = _ENV[K17('tonumber')]
  0111  GETTABLE  R3 = R1[K7('Content')]
  0112  CALL      R2 = call(R2, 1 args, 1 rets)
  0113  TEST      if not R2 then   -> -130956
  0114  JMP       (jump)   -> 116
  0115  LOADK     R2 = K19 0
  0116  SETTABLE  R0[K16('delay')] = R2
  0117  GETTABLE  R2 = R1[K30('Slot')]
  0118  SETTABLE  R0[K29('slotId')] = R2
  0119  GETTABLE  R2 = R1[K32('ReviewState')]
  0120  SETTABLE  R0[K31('reviewState')] = R2
  0121  JMP       (jump)   -> 383
  0122  GETTABLE  R2 = R0[K1('type')]
  0123  GETTABUP  R3 = _ENV[K3('ETimelineAction')]
  0124  GETTABLE  R3 = R3[K34('SlotSpines')]
  0125  EQ        if R0 eq R3   -> -129918
  0126  JMP       (jump)   -> 176
  0127  NEWTABLE  R2 = {} (0 items)
  0128  GETTABUP  R3 = _ENV[K5('StringUtil')]
  0129  GETTABLE  R3 = R3[K6('Split')]
  0130  GETTABLE  R4 = R1[K7('Content')]
  0131  TEST      if not R4 then   -> -130938
  0132  JMP       (jump)   -> 134
  0133  LOADK     R4 = K8 ''
  0134  LOADK     R5 = K21 ';'
  0135  CALL      R3 = call(R3, 1 args, 2 rets)
  0136  LOADK     R4 = K11 1
  0137  LEN       R5 = len R0
  0138  LOADK     R6 = K11 1
  0139  FORPREP   forprep R4(sBx=29)   -> 169
  0140  GETTABUP  R8 = _ENV[K5('StringUtil')]
  0141  GETTABLE  R8 = R8[K6('Split')]
  0142  GETTABLE  R9 = R3[R7]
  0143  LOADK     R10 = K35 '-'
  0144  CALL      R8 = call(R8, 1 args, 2 rets)
  0145  GETTABLE  R9 = R8[K18(2)]
  0146  TEST      if not R9 then   -> -130923
  0147  JMP       (jump)   -> 149
  0148  GETTABLE  R9 = R8[K11(1)]
  0149  GETTABUP  R10 = _ENV[K5('StringUtil')]
  0150  GETTABLE  R10 = R10[K6('Split')]
  0151  MOVE      R11 = R0
  0152  LOADK     R12 = K9 '#'
  0153  CALL      R10 = call(R10, 1 args, 2 rets)
  0154  NEWTABLE  R11 = {} (0 items)
  0155  GETTABUP  R12 = _ENV[K17('tonumber')]
  0156  GETTABLE  R13 = R8[K11(1)]
  0157  CALL      R12 = call(R12, 1 args, 1 rets)
  0158  SETTABLE  R11[K36('state')] = R12
  0159  GETTABLE  R12 = R10[K11(1)]
  0160  SETTABLE  R11[K37('animationName')] = R12
  0161  GETTABUP  R12 = _ENV[K17('tonumber')]
  0162  GETTABLE  R13 = R10[K18(2)]
  0163  CALL      R12 = call(R12, 1 args, 1 rets)
  0164  TEST      if not R12 then   -> -130905
  0165  JMP       (jump)   -> 167
  0166  LOADK     R12 = K19 0
  0167  SETTABLE  R11[K16('delay')] = R12
  0168  SETTABLE  R2[R7] = R11
  0169  FORLOOP   forloop R4(sBx=-30)   -> 140
  0170  SETTABLE  R0[K28('arrSlotActions')] = R2
  0171  GETTABLE  R4 = R1[K30('Slot')]
  0172  SETTABLE  R0[K29('slotId')] = R4
  0173  GETTABLE  R4 = R1[K32('ReviewState')]
  0174  SETTABLE  R0[K31('reviewState')] = R4
  0175  JMP       (jump)   -> 383
  0176  GETTABLE  R2 = R0[K1('type')]
  0177  GETTABUP  R3 = _ENV[K3('ETimelineAction')]
  0178  GETTABLE  R3 = R3[K38('CameraMove')]
  0179  EQ        if R0 eq R3   -> -129864
  0180  JMP       (jump)   -> 218
  0181  GETTABUP  R2 = _ENV[K5('StringUtil')]
  0182  GETTABLE  R2 = R2[K6('Split')]
  0183  GETTABLE  R3 = R1[K7('Content')]
  0184  LOADK     R4 = K39 ','
  0185  CALL      R2 = call(R2, 1 args, 2 rets)
  0186  GETTABUP  R3 = _ENV[K12('Log')]
  0187  GETTABLE  R3 = R3[K13('Assert')]
  0188  LEN       R4 = len R0
  0189  LE        if R1 le R4   -> 9411
  0190  JMP       (jump)   -> 192
  0191  LOADBOOL  R4 = false
  0192  LOADBOOL  R4 = true
  0193  LOADK     R5 = K40 'CameraMove格式错误'
  0194  CALL      R3 = call(R3, 0 args, 2 rets)
  0195  GETTABUP  R3 = _ENV[K42('TimelineStep')]
  0196  GETTABLE  R3 = R3[K43('GetPositionList')]
  0197  GETTABLE  R4 = R2[K11(1)]
  0198  CALL      R3 = call(R3, 1 args, 1 rets)
  0199  GETTABLE  R3 = R3[K11(1)]
  0200  SETTABLE  R0[K41('pos')] = R3
  0201  GETTABLE  R3 = R0[K41('pos')]
  0202  GETTABLE  R3 = R3[K27(3)]
  0203  SETTABLE  R0[K44('scale')] = R3
  0204  GETTABLE  R3 = R0[K41('pos')]
  0205  SETTABLE  R3[K27(3)] = K45(nil)
  0206  GETTABUP  R3 = _ENV[K17('tonumber')]
  0207  GETTABLE  R4 = R2[K18(2)]
  0208  CALL      R3 = call(R3, 1 args, 1 rets)
  0209  SETTABLE  R0[K46('duration')] = R3
  0210  GETTABUP  R3 = _ENV[K17('tonumber')]
  0211  GETTABLE  R4 = R2[K27(3)]
  0212  CALL      R3 = call(R3, 1 args, 1 rets)
  0213  TEST      if not R3 then   -> -130856
  0214  JMP       (jump)   -> 216
  0215  LOADK     R3 = K19 0
  0216  SETTABLE  R0[K47('delayTime')] = R3
  0217  JMP       (jump)   -> 383
  0218  GETTABLE  R2 = R0[K1('type')]
  0219  GETTABUP  R3 = _ENV[K3('ETimelineAction')]
  0220  GETTABLE  R3 = R3[K48('RoleAction')]
  0221  EQ        if R0 eq R3   -> -129822
  0222  JMP       (jump)   -> 266
  0223  GETTABUP  R2 = _ENV[K5('StringUtil')]
  0224  GETTABLE  R2 = R2[K6('Split')]
  0225  GETTABLE  R3 = R1[K7('Content')]
  0226  LOADK     R4 = K39 ','
  0227  CALL      R2 = call(R2, 1 args, 2 rets)
  0228  GETTABUP  R3 = _ENV[K12('Log')]
  0229  GETTABLE  R3 = R3[K13('Assert')]
  0230  LEN       R4 = len R0
  0231  LE        if R1 le R4   -> 14061
  0232  JMP       (jump)   -> 234
  0233  LOADBOOL  R4 = false
  0234  LOADBOOL  R4 = true
  0235  LOADK     R5 = K49 'RoleAction格式错误'
  0236  CALL      R3 = call(R3, 0 args, 2 rets)
  0237  GETTABLE  R3 = R2[K11(1)]
  0238  SETTABLE  R0[K37('animationName')] = R3
  0239  GETTABUP  R3 = _ENV[K42('TimelineStep')]
  0240  GETTABLE  R3 = R3[K43('GetPositionList')]
  0241  GETTABLE  R4 = R2[K18(2)]
  0242  CALL      R3 = call(R3, 1 args, 1 rets)
  0243  GETTABLE  R3 = R3[K11(1)]
  0244  SETTABLE  R0[K41('pos')] = R3
  0245  GETTABLE  R3 = R2[K27(3)]
  0246  EQ        if R1 eq K51('true')   -> -128981
  0247  JMP       (jump)   -> 249
  0248  LOADBOOL  R3 = false
  0249  LOADBOOL  R3 = true
  0250  SETTABLE  R0[K50('bReverse')] = R3
  0251  GETTABUP  R3 = _ENV[K17('tonumber')]
  0252  GETTABLE  R4 = R2[K53(4)]
  0253  CALL      R3 = call(R3, 1 args, 1 rets)
  0254  TEST      if not R3 then   -> -130815
  0255  JMP       (jump)   -> 257
  0256  LOADK     R3 = K19 0
  0257  SETTABLE  R0[K52('waitTime')] = R3
  0258  GETTABUP  R3 = _ENV[K17('tonumber')]
  0259  GETTABLE  R4 = R2[K54(5)]
  0260  CALL      R3 = call(R3, 1 args, 1 rets)
  0261  TEST      if not R3 then   -> -130808
  0262  JMP       (jump)   -> 264
  0263  LOADK     R3 = K19 0
  0264  SETTABLE  R0[K47('delayTime')] = R3
  0265  JMP       (jump)   -> 383
  0266  GETTABLE  R2 = R0[K1('type')]
  0267  GETTABUP  R3 = _ENV[K3('ETimelineAction')]
  0268  GETTABLE  R3 = R3[K55('ConstructionAudio')]
  0269  EQ        if R0 eq R3   -> -129774
  0270  JMP       (jump)   -> 329
  0271  GETTABUP  R2 = _ENV[K5('StringUtil')]
  0272  GETTABLE  R2 = R2[K6('Split')]
  0273  GETTABLE  R3 = R1[K7('Content')]
  0274  LOADK     R4 = K21 ';'
  0275  CALL      R2 = call(R2, 1 args, 2 rets)
  0276  NEWTABLE  R3 = {} (0 items)
  0277  SETTABLE  R0[K56('arrAudioData')] = R3
  0278  GETTABUP  R3 = _ENV[K57('ipairs')]
  0279  MOVE      R4 = R0
  0280  CALL      R3 = call(R3, 3 args, 1 rets)
  0281  JMP       (jump)   -> 326
  0282  GETTABUP  R8 = _ENV[K5('StringUtil')]
  0283  GETTABLE  R8 = R8[K6('Split')]
  0284  MOVE      R9 = R0
  0285  LOADK     R10 = K39 ','
  0286  CALL      R8 = call(R8, 1 args, 2 rets)
  0287  GETTABUP  R9 = _ENV[K12('Log')]
  0288  GETTABLE  R9 = R9[K13('Assert')]
  0289  LEN       R10 = len R0
  0290  EQ        if R1 eq K18(2)   -> -125386
  0291  JMP       (jump)   -> 293
  0292  LOADBOOL  R10 = false
  0293  LOADBOOL  R10 = true
  0294  LOADK     R11 = K58 'audio格式错误'
  0295  CALL      R9 = call(R9, 0 args, 2 rets)
  0296  GETTABLE  R9 = R8[K11(1)]
  0297  GETTABUP  R10 = _ENV[K59('AudioFileConfigName')]
  0298  GETTABLE  R10 = R10[K60('HasConfig')]
  0299  MOVE      R11 = R0
  0300  CALL      R10 = call(R10, 1 args, 1 rets)
  0301  TEST      if not R10 then   -> -130769
  0302  JMP       (jump)   -> 318
  0303  GETTABUP  R10 = _ENV[K17('tonumber')]
  0304  GETTABLE  R11 = R8[K18(2)]
  0305  CALL      R10 = call(R10, 1 args, 1 rets)
  0306  TEST      if not R10 then   -> -130763
  0307  JMP       (jump)   -> 309
  0308  LOADK     R10 = K19 0
  0309  GETTABLE  R11 = R0[K56('arrAudioData')]
  0310  GETTABLE  R12 = R0[K56('arrAudioData')]
  0311  LEN       R12 = len R0
  0312  ADD       R12 = K11(1) add R12
  0313  NEWTABLE  R13 = {} (0 items)
  0314  SETTABLE  R13[K61('audioName')] = R9
  0315  SETTABLE  R13[K47('delayTime')] = R10
  0316  SETTABLE  R11[R12] = R13
  0317  JMP       (jump)   -> 326
  0318  GETTABUP  R10 = _ENV[K12('Log')]
  0319  GETTABLE  R10 = R10[K62('Error')]
  0320  LOADK     R11 = K63 'audioFile 不存在:'
  0321  GETTABUP  R12 = _ENV[K24('tostring')]
  0322  MOVE      R13 = R0
  0323  CALL      R12 = call(R12, 1 args, 1 rets)
  0324  CONCAT    R11 = concat(R11..R11)
  0325  CALL      R10 = call(R10, 0 args, 1 rets)
  0326  TFORCALL  tforcall R3
  0327  TFORLOOP  tforloop R5(sBx=-46)   -> 282
  0328  JMP       (jump)   -> 383
  0329  GETTABLE  R2 = R0[K1('type')]
  0330  GETTABUP  R3 = _ENV[K3('ETimelineAction')]
  0331  GETTABLE  R3 = R3[K64('Cover')]
  0332  EQ        if R0 eq R3   -> -129711
  0333  JMP       (jump)   -> 349
  0334  GETTABLE  R2 = R1[K30('Slot')]
  0335  SETTABLE  R0[K29('slotId')] = R2
  0336  GETTABUP  R2 = _ENV[K12('Log')]
  0337  GETTABLE  R2 = R2[K13('Assert')]
  0338  GETTABLE  R3 = R0[K29('slotId')]
  0339  LOADK     R4 = K65 'Cover slotId 为空'
  0340  CALL      R2 = call(R2, 0 args, 2 rets)
  0341  GETTABUP  R2 = _ENV[K17('tonumber')]
  0342  GETTABLE  R3 = R1[K66('content')]
  0343  CALL      R2 = call(R2, 1 args, 1 rets)
  0344  TEST      if not R2 then   -> -130725
  0345  JMP       (jump)   -> 347
  0346  LOADK     R2 = K19 0
  0347  SETTABLE  R0[K47('delayTime')] = R2
  0348  JMP       (jump)   -> 383
  0349  GETTABLE  R2 = R0[K1('type')]
  0350  GETTABUP  R3 = _ENV[K3('ETimelineAction')]
  0351  GETTABLE  R3 = R3[K67('CoverNode')]
  0352  EQ        if R0 eq R3   -> -129691
  0353  JMP       (jump)   -> 381
  0354  GETTABLE  R2 = R1[K30('Slot')]
  0355  SETTABLE  R0[K29('slotId')] = R2
  0356  GETTABUP  R2 = _ENV[K12('Log')]
  0357  GETTABLE  R2 = R2[K13('Assert')]
  0358  GETTABLE  R3 = R0[K29('slotId')]
  0359  LOADK     R4 = K65 'Cover slotId 为空'
  0360  CALL      R2 = call(R2, 0 args, 2 rets)
  0361  GETTABUP  R2 = _ENV[K5('StringUtil')]
  0362  GETTABLE  R2 = R2[K68('SplitToNum')]
  0363  GETTABLE  R3 = R1[K7('Content')]
  0364  LOADK     R4 = K21 ';'
  0365  CALL      R2 = call(R2, 1 args, 2 rets)
  0366  GETTABUP  R3 = _ENV[K17('tonumber')]
  0367  GETTABLE  R4 = R2[K11(1)]
  0368  CALL      R3 = call(R3, 1 args, 1 rets)
  0369  TEST      if not R3 then   -> -130700
  0370  JMP       (jump)   -> 372
  0371  LOADK     R3 = K11 1
  0372  SUB       R3 = K11(1) sub R3
  0373  SETTABLE  R0[K69('nodeIndex')] = R3
  0374  GETTABLE  R3 = R2[K18(2)]
  0375  EQ        if R1 eq K11(1)   -> -128892
  0376  JMP       (jump)   -> 378
  0377  LOADBOOL  R3 = false
  0378  LOADBOOL  R3 = true
  0379  SETTABLE  R0[K70('isHide')] = R3
  0380  JMP       (jump)   -> 383
  0381  GETTABLE  R2 = R1[K7('Content')]
  0382  SETTABLE  R0[K66('content')] = R2
  0383  RETURN    return R0..R-1
; ---------- proto6 [GetPositionList] ----------
  ; fn ?  line 202-208 np=1 va=0 ms=12 code=25 consts=7 upvals=3 protos=0
  ;   K[0]='string'
  ;   K[1]='gmatch'
  ;   K[2]=1
  ;   K[3]='StringUtil'
  ;   K[4]='SplitToNum'
  ;   K[5]='sub'
  ;   K[6]=2
  ;   upvals: _ENV, patten, split
  ;   locals: str(0-25), pos(1-25), (for generator)(6-23), (for state)(6-23), (for control)(6-23), s(7-21)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  GETTABUP  R2 = _ENV[K0('string')]
  0002  GETTABLE  R2 = R2[K1('gmatch')]
  0003  MOVE      R3 = R0
  0004  GETUPVAL  R4 = _ENV
  0005  CALL      R2 = call(R2, 3 args, 2 rets)
  0006  JMP       (jump)   -> 21
  0007  LEN       R6 = len R0
  0008  ADD       R6 = K2(1) add R6
  0009  GETTABUP  R7 = _ENV[K3('StringUtil')]
  0010  GETTABLE  R7 = R7[K4('SplitToNum')]
  0011  GETTABUP  R8 = _ENV[K0('string')]
  0012  GETTABLE  R8 = R8[K5('sub')]
  0013  MOVE      R9 = R0
  0014  LOADK     R10 = K6 2
  0015  LEN       R11 = len R0
  0016  SUB       R11 = K2(1) sub R11
  0017  CALL      R8 = call(R8, 1 args, 3 rets)
  0018  GETUPVAL  R9 = _ENV
  0019  CALL      R7 = call(R7, 1 args, 2 rets)
  0020  SETTABLE  R1[R6] = R7
  0021  TFORCALL  tforcall R2
  0022  TFORLOOP  tforloop R4(sBx=-16)   -> 7
  0023  RETURN    return R1..R0
  0024  RETURN    return R0..R-1
; ---------- proto7 [GetFinalState] ----------
  ; fn ?  line 210-218 np=2 va=0 ms=9 code=18 consts=7 upvals=1 protos=0
  ;   K[0]='reviewState'
  ;   K[1]='mapSlotChanges'
  ;   K[2]='slotId'
  ;   K[3]='Log'
  ;   K[4]='Assert'
  ;   K[5]='时间线 slot 没有在任务中找到对应的 state。 slotId:'
  ;   K[6]='tostring'
  ;   upvals: _ENV
  ;   locals: self(0-18), timelineData(0-18), state(1-18), taskState(6-16)
  0000  GETTABLE  R2 = R0[K0('reviewState')]
  0001  TEST      if not R2 then   -> -131068
  0002  JMP       (jump)   -> 16
  0003  GETTABLE  R3 = R1[K1('mapSlotChanges')]
  0004  GETTABLE  R4 = R0[K2('slotId')]
  0005  GETTABLE  R3 = R3[R4]
  0006  GETTABUP  R4 = _ENV[K3('Log')]
  0007  GETTABLE  R4 = R4[K4('Assert')]
  0008  MOVE      R5 = R0
  0009  LOADK     R6 = K5 '时间线 slot 没有在任务中找到对应的 state。 slotId:'
  0010  GETTABUP  R7 = _ENV[K6('tostring')]
  0011  GETTABLE  R8 = R0[K2('slotId')]
  0012  CALL      R7 = call(R7, 1 args, 1 rets)
  0013  CONCAT    R6 = concat(R6..R6)
  0014  CALL      R4 = call(R4, 0 args, 2 rets)
  0015  MOVE      R2 = R0
  0016  RETURN    return R2..R1
  0017  RETURN    return R0..R-1
