# Model_Timeline_TimelineDataModel_214.luac
; fn @TimelineDataModel.lua  line 0-0 np=0 va=1 ms=2 code=27 consts=9 upvals=1 protos=7
;   K[0]='TimelineDataModel'
;   K[1]='__index'
;   K[2]='Init'
;   K[3]='_LoadConfigs'
;   K[4]='_LoadSpecialConfigs'
;   K[5]='_ParseConfigs'
;   K[6]='_GetMainlineTimelineData'
;   K[7]='_GetSpecialTimelineData'
;   K[8]='GetTimelineData'
;   upvals: _ENV
0000  NEWTABLE  R0 = {} (0 items)
0001  SETTABUP  _ENV[K0('TimelineDataModel')] = R0
0002  GETTABUP  R0 = _ENV[K0('TimelineDataModel')]
0003  GETTABUP  R1 = _ENV[K0('TimelineDataModel')]
0004  SETTABLE  R0[K1('__index')] = R1
0005  GETTABUP  R0 = _ENV[K0('TimelineDataModel')]
0006  CLOSURE   R1 = closure proto0
0007  SETTABLE  R0[K2('Init')] = R1
0008  GETTABUP  R0 = _ENV[K0('TimelineDataModel')]
0009  CLOSURE   R1 = closure proto1
0010  SETTABLE  R0[K3('_LoadConfigs')] = R1
0011  GETTABUP  R0 = _ENV[K0('TimelineDataModel')]
0012  CLOSURE   R1 = closure proto2
0013  SETTABLE  R0[K4('_LoadSpecialConfigs')] = R1
0014  GETTABUP  R0 = _ENV[K0('TimelineDataModel')]
0015  CLOSURE   R1 = closure proto3
0016  SETTABLE  R0[K5('_ParseConfigs')] = R1
0017  GETTABUP  R0 = _ENV[K0('TimelineDataModel')]
0018  CLOSURE   R1 = closure proto4
0019  SETTABLE  R0[K6('_GetMainlineTimelineData')] = R1
0020  GETTABUP  R0 = _ENV[K0('TimelineDataModel')]
0021  CLOSURE   R1 = closure proto5
0022  SETTABLE  R0[K7('_GetSpecialTimelineData')] = R1
0023  GETTABUP  R0 = _ENV[K0('TimelineDataModel')]
0024  CLOSURE   R1 = closure proto6
0025  SETTABLE  R0[K8('GetTimelineData')] = R1
0026  RETURN    return R0..R-1
; ---------- proto0 [Init] ----------
  ; fn ?  line 7-10 np=1 va=0 ms=2 code=5 consts=2 upvals=0 protos=0
  ;   K[0]='m_mapChapterTimelineData'
  ;   K[1]='m_mapSpecialTimelineData'
  ;   locals: self(0-5)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  SETTABLE  R0[K0('m_mapChapterTimelineData')] = R1
  0002  NEWTABLE  R1 = {} (0 items)
  0003  SETTABLE  R0[K1('m_mapSpecialTimelineData')] = R1
  0004  RETURN    return R0..R-1
; ---------- proto1 [_LoadConfigs] ----------
  ; fn ?  line 13-36 np=3 va=0 ms=8 code=30 consts=9 upvals=1 protos=1
  ;   K[0]='m_mapChapterTimelineData'
  ;   K[1]='GM'
  ;   K[2]='UIManager'
  ;   K[3]='SetEventLock'
  ;   K[4]='DynamicConfig.Mainline.'
  ;   K[5]='tostring'
  ;   K[6]='.TimelineConfig_'
  ;   K[7]='ConfigModel'
  ;   K[8]='LoadDynamicConfigAsync'
  ;   upvals: _ENV
  ;   locals: self(0-30), chapterName(0-30), callback(0-30), path(23-30)
  0000  GETTABLE  R3 = R0[K0('m_mapChapterTimelineData')]
  0001  GETTABLE  R3 = R3[R1]
  0002  TEST      if not R3 then   -> -131068
  0003  JMP       (jump)   -> 9
  0004  MOVE      R3 = R0
  0005  GETTABLE  R4 = R0[K0('m_mapChapterTimelineData')]
  0006  GETTABLE  R4 = R4[R1]
  0007  CALL      R3 = call(R3, 0 args, 1 rets)
  0008  RETURN    return R0..R-1
  0009  GETTABUP  R3 = _ENV[K1('GM')]
  0010  GETTABLE  R3 = R3[K2('UIManager')]
  0011  SELF      R4 = R3[K3('SetEventLock')] (self)
  0012  LOADBOOL  R5 = true
  0013  CALL      R3 = call(R3, 0 args, 2 rets)
  0014  LOADK     R3 = K4 'DynamicConfig.Mainline.'
  0015  GETTABUP  R4 = _ENV[K5('tostring')]
  0016  MOVE      R5 = R0
  0017  CALL      R4 = call(R4, 1 args, 1 rets)
  0018  LOADK     R5 = K6 '.TimelineConfig_'
  0019  GETTABUP  R6 = _ENV[K5('tostring')]
  0020  MOVE      R7 = R0
  0021  CALL      R6 = call(R6, 1 args, 1 rets)
  0022  CONCAT    R3 = concat(R3..R3)
  0023  GETTABUP  R4 = _ENV[K1('GM')]
  0024  GETTABLE  R4 = R4[K7('ConfigModel')]
  0025  SELF      R5 = R4[K8('LoadDynamicConfigAsync')] (self)
  0026  MOVE      R6 = R0
  0027  CLOSURE   R7 = closure proto0
  0028  CALL      R4 = call(R4, 0 args, 3 rets)
  0029  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 22-35 np=1 va=0 ms=5 code=40 consts=12 upvals=4 protos=0
    ;   K[0]='GM'
    ;   K[1]='UIManager'
    ;   K[2]='SetEventLock'
    ;   K[3]='BIManager'
    ;   K[4]='LogErrorInfo'
    ;   K[5]='ct_ld_er'
    ;   K[6]='CS'
    ;   K[7]='CSErrorMonitor'
    ;   K[8]='OpenForceRestartWindow'
    ;   K[9]='force_restart_desc'
    ;   K[10]='m_mapChapterTimelineData'
    ;   K[11]='_ParseConfigs'
    ;   upvals: _ENV, chapterName, self, callback
    ;   locals: tb(0-40), mapTimelineData(33-40)
    0000  GETTABUP  R1 = _ENV[K0('GM')]
    0001  GETTABLE  R1 = R1[K1('UIManager')]
    0002  SELF      R2 = R1[K2('SetEventLock')] (self)
    0003  LOADBOOL  R3 = false
    0004  CALL      R1 = call(R1, 0 args, 2 rets)
    0005  TEST      if not R0 then   -> -131064
    0006  JMP       (jump)   -> 28
    0007  GETTABUP  R1 = _ENV[K0('GM')]
    0008  GETTABLE  R1 = R1[K3('BIManager')]
    0009  SELF      R2 = R1[K4('LogErrorInfo')] (self)
    0010  LOADK     R3 = K5 'ct_ld_er'
    0011  GETUPVAL  R4 = _ENV
    0012  CALL      R1 = call(R1, 0 args, 3 rets)
    0013  GETTABUP  R1 = _ENV[K6('CS')]
    0014  GETTABLE  R1 = R1[K7('CSErrorMonitor')]
    0015  GETTABLE  R1 = R1[K8('OpenForceRestartWindow')]
    0016  LOADK     R2 = K9 'force_restart_desc'
    0017  CALL      R1 = call(R1, 0 args, 1 rets)
    0018  GETTABUP  R1 = self[K10('m_mapChapterTimelineData')]
    0019  GETUPVAL  R2 = _ENV
    0020  NEWTABLE  R3 = {} (0 items)
    0021  SETTABLE  R1[R2] = R3
    0022  GETUPVAL  R1 = _ENV
    0023  GETTABUP  R2 = self[K10('m_mapChapterTimelineData')]
    0024  GETUPVAL  R3 = _ENV
    0025  GETTABLE  R2 = R2[R3]
    0026  CALL      R1 = call(R1, 0 args, 1 rets)
    0027  RETURN    return R0..R-1
    0028  GETUPVAL  R1 = _ENV
    0029  SELF      R2 = R1[K11('_ParseConfigs')] (self)
    0030  MOVE      R3 = R0
    0031  GETUPVAL  R4 = _ENV
    0032  CALL      R1 = call(R1, 1 args, 3 rets)
    0033  GETTABUP  R2 = self[K10('m_mapChapterTimelineData')]
    0034  GETUPVAL  R3 = _ENV
    0035  SETTABLE  R2[R3] = R1
    0036  GETUPVAL  R2 = _ENV
    0037  MOVE      R3 = R0
    0038  CALL      R2 = call(R2, 0 args, 1 rets)
    0039  RETURN    return R0..R-1
; ---------- proto2 [_LoadSpecialConfigs] ----------
  ; fn ?  line 40-63 np=3 va=0 ms=8 code=30 consts=9 upvals=1 protos=1
  ;   K[0]='m_mapSpecialTimelineData'
  ;   K[1]='GM'
  ;   K[2]='UIManager'
  ;   K[3]='SetEventLock'
  ;   K[4]='DynamicConfig.Special.Timeline.'
  ;   K[5]='tostring'
  ;   K[6]='.TimelineConfig_'
  ;   K[7]='ConfigModel'
  ;   K[8]='LoadDynamicConfigAsync'
  ;   upvals: _ENV
  ;   locals: self(0-30), timelinePrefix(0-30), callback(0-30), path(23-30)
  0000  GETTABLE  R3 = R0[K0('m_mapSpecialTimelineData')]
  0001  GETTABLE  R3 = R3[R1]
  0002  TEST      if not R3 then   -> -131068
  0003  JMP       (jump)   -> 9
  0004  MOVE      R3 = R0
  0005  GETTABLE  R4 = R0[K0('m_mapSpecialTimelineData')]
  0006  GETTABLE  R4 = R4[R1]
  0007  CALL      R3 = call(R3, 0 args, 1 rets)
  0008  RETURN    return R0..R-1
  0009  GETTABUP  R3 = _ENV[K1('GM')]
  0010  GETTABLE  R3 = R3[K2('UIManager')]
  0011  SELF      R4 = R3[K3('SetEventLock')] (self)
  0012  LOADBOOL  R5 = true
  0013  CALL      R3 = call(R3, 0 args, 2 rets)
  0014  LOADK     R3 = K4 'DynamicConfig.Special.Timeline.'
  0015  GETTABUP  R4 = _ENV[K5('tostring')]
  0016  MOVE      R5 = R0
  0017  CALL      R4 = call(R4, 1 args, 1 rets)
  0018  LOADK     R5 = K6 '.TimelineConfig_'
  0019  GETTABUP  R6 = _ENV[K5('tostring')]
  0020  MOVE      R7 = R0
  0021  CALL      R6 = call(R6, 1 args, 1 rets)
  0022  CONCAT    R3 = concat(R3..R3)
  0023  GETTABUP  R4 = _ENV[K1('GM')]
  0024  GETTABLE  R4 = R4[K7('ConfigModel')]
  0025  SELF      R5 = R4[K8('LoadDynamicConfigAsync')] (self)
  0026  MOVE      R6 = R0
  0027  CLOSURE   R7 = closure proto0
  0028  CALL      R4 = call(R4, 0 args, 3 rets)
  0029  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 49-62 np=1 va=0 ms=5 code=39 consts=13 upvals=4 protos=0
    ;   K[0]='GM'
    ;   K[1]='UIManager'
    ;   K[2]='SetEventLock'
    ;   K[3]='BIManager'
    ;   K[4]='LogErrorInfo'
    ;   K[5]='st_ld_er'
    ;   K[6]='CS'
    ;   K[7]='CSErrorMonitor'
    ;   K[8]='OpenForceRestartWindow'
    ;   K[9]='force_restart_desc'
    ;   K[10]='m_mapSpecialTimelineData'
    ;   K[11]='_ParseConfigs'
    ;   K[12]='m_mapChapterTimelineData'
    ;   upvals: _ENV, timelinePrefix, self, callback
    ;   locals: tb(0-39), mapTimelineData(32-39)
    0000  GETTABUP  R1 = _ENV[K0('GM')]
    0001  GETTABLE  R1 = R1[K1('UIManager')]
    0002  SELF      R2 = R1[K2('SetEventLock')] (self)
    0003  LOADBOOL  R3 = false
    0004  CALL      R1 = call(R1, 0 args, 2 rets)
    0005  TEST      if not R0 then   -> -131064
    0006  JMP       (jump)   -> 28
    0007  GETTABUP  R1 = _ENV[K0('GM')]
    0008  GETTABLE  R1 = R1[K3('BIManager')]
    0009  SELF      R2 = R1[K4('LogErrorInfo')] (self)
    0010  LOADK     R3 = K5 'st_ld_er'
    0011  GETUPVAL  R4 = _ENV
    0012  CALL      R1 = call(R1, 0 args, 3 rets)
    0013  GETTABUP  R1 = _ENV[K6('CS')]
    0014  GETTABLE  R1 = R1[K7('CSErrorMonitor')]
    0015  GETTABLE  R1 = R1[K8('OpenForceRestartWindow')]
    0016  LOADK     R2 = K9 'force_restart_desc'
    0017  CALL      R1 = call(R1, 0 args, 1 rets)
    0018  GETTABUP  R1 = self[K10('m_mapSpecialTimelineData')]
    0019  GETUPVAL  R2 = _ENV
    0020  NEWTABLE  R3 = {} (0 items)
    0021  SETTABLE  R1[R2] = R3
    0022  GETUPVAL  R1 = _ENV
    0023  GETTABUP  R2 = self[K10('m_mapSpecialTimelineData')]
    0024  GETUPVAL  R3 = _ENV
    0025  GETTABLE  R2 = R2[R3]
    0026  CALL      R1 = call(R1, 0 args, 1 rets)
    0027  RETURN    return R0..R-1
    0028  GETUPVAL  R1 = _ENV
    0029  SELF      R2 = R1[K11('_ParseConfigs')] (self)
    0030  MOVE      R3 = R0
    0031  CALL      R1 = call(R1, 1 args, 2 rets)
    0032  GETTABUP  R2 = self[K12('m_mapChapterTimelineData')]
    0033  GETUPVAL  R3 = _ENV
    0034  SETTABLE  R2[R3] = R1
    0035  GETUPVAL  R2 = _ENV
    0036  MOVE      R3 = R0
    0037  CALL      R2 = call(R2, 0 args, 1 rets)
    0038  RETURN    return R0..R-1
; ---------- proto3 [_ParseConfigs] ----------
  ; fn ?  line 65-80 np=3 va=0 ms=14 code=28 consts=5 upvals=1 protos=0
  ;   K[0]=1
  ;   K[1]='Id'
  ;   K[2]='TimelineData'
  ;   K[3]='Create'
  ;   K[4]='AddStep'
  ;   upvals: _ENV
  ;   locals: self(0-28), configs(0-28), chapterName(0-28), mapTimelineData(1-28), timelineData(2-28), id(2-28), (for index)(5-26), (for limit)(5-26), (for step)(5-26), i(6-25), timelineData(9-25)
  0000  NEWTABLE  R3 = {} (0 items)
  0001  LOADNIL   R4..R4 = nil
  0002  LOADK     R6 = K0 1
  0003  LEN       R7 = len R0
  0004  LOADK     R8 = K0 1
  0005  FORPREP   forprep R6(sBx=19)   -> 25
  0006  GETTABLE  R10 = R1[R9]
  0007  GETTABLE  R5 = R10[K1('Id')]
  0008  GETTABLE  R10 = R3[R5]
  0009  TEST      if not R10 then   -> -131060
  0010  JMP       (jump)   -> 22
  0011  GETTABUP  R11 = _ENV[K2('TimelineData')]
  0012  GETTABLE  R11 = R11[K3('Create')]
  0013  MOVE      R12 = R0
  0014  MOVE      R13 = R0
  0015  CALL      R11 = call(R11, 1 args, 2 rets)
  0016  MOVE      R10 = R0
  0017  SELF      R12 = R10[K4('AddStep')] (self)
  0018  GETTABLE  R13 = R1[R9]
  0019  CALL      R11 = call(R11, 0 args, 2 rets)
  0020  SETTABLE  R3[R5] = R10
  0021  JMP       (jump)   -> 25
  0022  SELF      R12 = R10[K4('AddStep')] (self)
  0023  GETTABLE  R13 = R1[R9]
  0024  CALL      R11 = call(R11, 0 args, 2 rets)
  0025  FORLOOP   forloop R6(sBx=-20)   -> 6
  0026  RETURN    return R3..R2
  0027  RETURN    return R0..R-1
; ---------- proto4 [_GetMainlineTimelineData] ----------
  ; fn ?  line 84-94 np=5 va=0 ms=9 code=5 consts=1 upvals=1 protos=1
  ;   K[0]='_LoadConfigs'
  ;   upvals: _ENV
  ;   locals: self(0-5), timelineId(0-5), chapterName(0-5), bError(0-5), callback(0-5)
  0000  SELF      R6 = R0[K0('_LoadConfigs')] (self)
  0001  MOVE      R7 = R0
  0002  CLOSURE   R8 = closure proto0
  0003  CALL      R5 = call(R5, 0 args, 3 rets)
  0004  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 85-93 np=1 va=0 ms=6 code=22 consts=5 upvals=4 protos=0
    ;   K[0]=false
    ;   K[1]='Log'
    ;   K[2]='Error'
    ;   K[3]='没有找到对应的时间线配置 timelineId:'
    ;   K[4]='tostring'
    ;   upvals: timelineId, bError, _ENV, callback
    ;   locals: mapTimelineData(0-22), timelineData(2-22)
    0000  GETUPVAL  R1 = timelineId
    0001  GETTABLE  R1 = R0[R1]
    0002  TEST      if not R1 then   -> -131067
    0003  JMP       (jump)   -> 15
    0004  GETUPVAL  R2 = timelineId
    0005  EQ        if R1 eq K0(false)   -> -129785
    0006  JMP       (jump)   -> 15
    0007  GETTABUP  R2 = _ENV[K1('Log')]
    0008  GETTABLE  R2 = R2[K2('Error')]
    0009  LOADK     R3 = K3 '没有找到对应的时间线配置 timelineId:'
    0010  GETTABUP  R4 = _ENV[K4('tostring')]
    0011  GETUPVAL  R5 = timelineId
    0012  CALL      R4 = call(R4, 1 args, 1 rets)
    0013  CONCAT    R3 = concat(R3..R3)
    0014  CALL      R2 = call(R2, 0 args, 1 rets)
    0015  GETUPVAL  R2 = timelineId
    0016  TEST      if not R2 then   -> -131054
    0017  JMP       (jump)   -> 21
    0018  GETUPVAL  R2 = timelineId
    0019  MOVE      R3 = R0
    0020  CALL      R2 = call(R2, 0 args, 1 rets)
    0021  RETURN    return R0..R-1
; ---------- proto5 [_GetSpecialTimelineData] ----------
  ; fn ?  line 96-107 np=4 va=0 ms=9 code=11 consts=5 upvals=1 protos=1
  ;   K[0]='StringUtil'
  ;   K[1]='Split'
  ;   K[2]='_'
  ;   K[3]=1
  ;   K[4]='_LoadSpecialConfigs'
  ;   upvals: _ENV
  ;   locals: self(0-11), timelineId(0-11), bError(0-11), callback(0-11), prefix(6-11)
  0000  GETTABUP  R4 = _ENV[K0('StringUtil')]
  0001  GETTABLE  R4 = R4[K1('Split')]
  0002  MOVE      R5 = R0
  0003  LOADK     R6 = K2 '_'
  0004  CALL      R4 = call(R4, 1 args, 2 rets)
  0005  GETTABLE  R4 = R4[K3(1)]
  0006  SELF      R6 = R0[K4('_LoadSpecialConfigs')] (self)
  0007  MOVE      R7 = R0
  0008  CLOSURE   R8 = closure proto0
  0009  CALL      R5 = call(R5, 0 args, 3 rets)
  0010  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 98-106 np=1 va=0 ms=6 code=22 consts=5 upvals=4 protos=0
    ;   K[0]=false
    ;   K[1]='Log'
    ;   K[2]='Error'
    ;   K[3]='没有找到对应的时间线配置 timelineId:'
    ;   K[4]='tostring'
    ;   upvals: timelineId, bError, _ENV, callback
    ;   locals: mapTimelineData(0-22), timelineData(2-22)
    0000  GETUPVAL  R1 = timelineId
    0001  GETTABLE  R1 = R0[R1]
    0002  TEST      if not R1 then   -> -131067
    0003  JMP       (jump)   -> 15
    0004  GETUPVAL  R2 = timelineId
    0005  EQ        if R1 eq K0(false)   -> -129785
    0006  JMP       (jump)   -> 15
    0007  GETTABUP  R2 = _ENV[K1('Log')]
    0008  GETTABLE  R2 = R2[K2('Error')]
    0009  LOADK     R3 = K3 '没有找到对应的时间线配置 timelineId:'
    0010  GETTABUP  R4 = _ENV[K4('tostring')]
    0011  GETUPVAL  R5 = timelineId
    0012  CALL      R4 = call(R4, 1 args, 1 rets)
    0013  CONCAT    R3 = concat(R3..R3)
    0014  CALL      R2 = call(R2, 0 args, 1 rets)
    0015  GETUPVAL  R2 = timelineId
    0016  TEST      if not R2 then   -> -131054
    0017  JMP       (jump)   -> 21
    0018  GETUPVAL  R2 = timelineId
    0019  MOVE      R3 = R0
    0020  CALL      R2 = call(R2, 0 args, 1 rets)
    0021  RETURN    return R0..R-1
; ---------- proto6 [GetTimelineData] ----------
  ; fn ?  line 111-117 np=5 va=0 ms=11 code=15 consts=2 upvals=0 protos=0
  ;   K[0]='_GetMainlineTimelineData'
  ;   K[1]='_GetSpecialTimelineData'
  ;   locals: self(0-15), timelineId(0-15), chapterName(0-15), bError(0-15), callback(0-15)
  0000  TEST      if not R2 then   -> -131070
  0001  JMP       (jump)   -> 9
  0002  SELF      R6 = R0[K0('_GetMainlineTimelineData')] (self)
  0003  MOVE      R7 = R0
  0004  MOVE      R8 = R0
  0005  MOVE      R9 = R0
  0006  MOVE      R10 = R0
  0007  CALL      R5 = call(R5, 0 args, 5 rets)
  0008  JMP       (jump)   -> 14
  0009  SELF      R6 = R0[K1('_GetSpecialTimelineData')] (self)
  0010  MOVE      R7 = R0
  0011  MOVE      R8 = R0
  0012  MOVE      R9 = R0
  0013  CALL      R5 = call(R5, 0 args, 4 rets)
  0014  RETURN    return R0..R-1
