# UpgradeRace_Model_UpgradeRaceActivityModel_1560.luac
; fn @UpgradeRaceActivityModel.lua  line 0-0 np=0 va=1 ms=5 code=228 consts=89 upvals=1 protos=69
;   K[0]='UpgradeRaceActivityModel'
;   K[1]='setmetatable'
;   K[2]='bShouldSkipEndWindowOnLongAway'
;   K[3]=true
;   K[4]='EntryGapTime'
;   K[5]=1800
;   K[6]='EntryOpName'
;   K[7]='BLUpgradeRaceEntry1'
;   K[8]='IsExsitFail'
;   K[9]='BaseRaceActivityModel'
;   K[10]='__index'
;   K[11]='RoundConfigKey'
;   K[12]='coin_race'
;   K[13]='PlayerConfigKey'
;   K[14]='race_player'
;   K[15]='AnimationRound'
;   K[16]='anim_round'
;   K[17]='Init'
;   K[18]='Destroy'
;   K[19]='GetActivityDefinitionByType'
;   K[20]='GetActivityDefinition'
;   K[21]='GetTokenHelper'
;   K[22]='_LoadOtherServerConfig'
;   K[23]='UpgradeRaceActivityModel'
;   K[24]='CheckSpeedCurveValid'
;   K[25]='_CheckConfigValid'
;   K[26]='GetCurrentRoundReward'
;   K[27]='GetRewardByRound'
;   K[28]='DB_VALUE_KEY'
;   K[29]=1
;   K[30]='_DBTableGetValue'
;   K[31]='_DBTableGetNumber'
;   K[32]='_DBTableSet'
;   K[33]='_DBTableRemove'
;   K[34]='GetAnimationRound'
;   K[35]='SetAnimationRound'
;   K[36]='_DispatchMainWindowOpenedEvent'
;   K[37]='_DispatchMainWindowClosedEvent'
;   K[38]='_DispatchMainWindowAnimationEndEvent'
;   K[39]='_DispatchMainWindowOpenedAtEventEndedEvent'
;   K[40]='_DispatchHelpWindowClosedEvent'
;   K[41]='GetSmallRoundCount'
;   K[42]='GetCurrentRoundPlayerNumber'
;   K[43]='GetRoundDefinitionIndex'
;   K[44]='GetRoundDefinitionIndexByRound'
;   K[45]='GetPlayerNumberByRound'
;   K[46]='GetSelfTrack'
;   K[47]='IsFirstTimeEntry'
;   K[48]='IsLastRoundInLargeRound'
;   K[49]='GetEntryGapTime'
;   K[50]='_OnCompetitionEntryCallback'
;   K[51]='_GetRobotPlayerNumber'
;   K[52]='_CreateMySelfData'
;   K[53]='_CreateRobotPlayers'
;   K[54]='_GenerateScoreCurve'
;   K[55]='GenerateRandomFloat'
;   K[56]='_GetPlayerLogString'
;   K[57]='_CheckFail'
;   K[58]='_SetCurrentRoundFail'
;   K[59]='AcquireActivityToken'
;   K[60]='GetActivityTokenNumber'
;   K[61]='_OpenWindow'
;   K[62]='OpenStartWindow'
;   K[63]='OpenMainWindow'
;   K[64]='OpenInfoWindow'
;   K[65]='OpenNewRoundWindowSmall'
;   K[66]='OpenNewRoundWindowLarge'
;   K[67]='OpenFailWindow'
;   K[68]='OpenFinishFailWindow'
;   K[69]='OpenFinishSuccessWindow'
;   K[70]='RecordWindowDailyOpenTime'
;   K[71]='TryOpenMainWindow'
;   K[72]='OpenCurrentRoundEntryWindow'
;   K[73]='OpenFinishWindow'
;   K[74]='OnMainWindowOpened'
;   K[75]='OnMainWindowClosed'
;   K[76]='OnMainWindowAnimationEnd'
;   K[77]='OnHelpWindowClosed'
;   K[78]='_IsEntryVisible'
;   K[79]='GetMapEntryShowConfig'
;   K[80]='GetBoardEntryShowConfig'
;   K[81]='ShouldShowRedPoint'
;   K[82]='OnEntryClicked'
;   K[83]='_LogActivityEnd'
;   K[84]='_LogRaceCompletedBI'
;   K[85]='TestFinishRoundSmall'
;   K[86]='TestFinishRoundLarge'
;   K[87]='TestGotoLastRound'
;   K[88]='TestFinishWithRobot'
;   upvals: _ENV
;   locals: DBKey(18-228), DB_VALUE_KEY(49-228), TRUE_VALUE(50-228)
0000  GETTABUP  R0 = _ENV[K1('setmetatable')]
0001  NEWTABLE  R1 = {} (0 items)
0002  SETTABLE  R1[K2('bShouldSkipEndWindowOnLongAway')] = K3(true)
0003  SETTABLE  R1[K4('EntryGapTime')] = K5(1800)
0004  SETTABLE  R1[K6('EntryOpName')] = K7('BLUpgradeRaceEntry1')
0005  SETTABLE  R1[K8('IsExsitFail')] = K3(true)
0006  GETTABUP  R2 = _ENV[K9('BaseRaceActivityModel')]
0007  CALL      R0 = call(R0, 1 args, 2 rets)
0008  SETTABUP  _ENV[K0('UpgradeRaceActivityModel')] = R0
0009  GETTABUP  R0 = _ENV[K0('UpgradeRaceActivityModel')]
0010  GETTABUP  R1 = _ENV[K0('UpgradeRaceActivityModel')]
0011  SETTABLE  R0[K10('__index')] = R1
0012  GETTABUP  R0 = _ENV[K0('UpgradeRaceActivityModel')]
0013  SETTABLE  R0[K11('RoundConfigKey')] = K12('coin_race')
0014  GETTABUP  R0 = _ENV[K0('UpgradeRaceActivityModel')]
0015  SETTABLE  R0[K13('PlayerConfigKey')] = K14('race_player')
0016  NEWTABLE  R0 = {} (0 items)
0017  SETTABLE  R0[K15('AnimationRound')] = K16('anim_round')
0018  GETTABUP  R1 = _ENV[K0('UpgradeRaceActivityModel')]
0019  CLOSURE   R2 = closure proto0
0020  SETTABLE  R1[K17('Init')] = R2
0021  GETTABUP  R1 = _ENV[K0('UpgradeRaceActivityModel')]
0022  CLOSURE   R2 = closure proto1
0023  SETTABLE  R1[K18('Destroy')] = R2
0024  GETTABUP  R1 = _ENV[K0('UpgradeRaceActivityModel')]
0025  CLOSURE   R2 = closure proto2
0026  SETTABLE  R1[K19('GetActivityDefinitionByType')] = R2
0027  GETTABUP  R1 = _ENV[K0('UpgradeRaceActivityModel')]
0028  CLOSURE   R2 = closure proto3
0029  SETTABLE  R1[K20('GetActivityDefinition')] = R2
0030  GETTABUP  R1 = _ENV[K0('UpgradeRaceActivityModel')]
0031  CLOSURE   R2 = closure proto4
0032  SETTABLE  R1[K21('GetTokenHelper')] = R2
0033  GETTABUP  R1 = _ENV[K0('UpgradeRaceActivityModel')]
0034  CLOSURE   R2 = closure proto5
0035  SETTABLE  R1[K22('_LoadOtherServerConfig')] = R2
0036  GETTABUP  R1 = _ENV[K23('UpgradeRaceActivityModel')]
0037  CLOSURE   R2 = closure proto6
0038  SETTABLE  R1[K24('CheckSpeedCurveValid')] = R2
0039  GETTABUP  R1 = _ENV[K23('UpgradeRaceActivityModel')]
0040  CLOSURE   R2 = closure proto7
0041  SETTABLE  R1[K25('_CheckConfigValid')] = R2
0042  GETTABUP  R1 = _ENV[K23('UpgradeRaceActivityModel')]
0043  CLOSURE   R2 = closure proto8
0044  SETTABLE  R1[K26('GetCurrentRoundReward')] = R2
0045  GETTABUP  R1 = _ENV[K23('UpgradeRaceActivityModel')]
0046  CLOSURE   R2 = closure proto9
0047  SETTABLE  R1[K27('GetRewardByRound')] = R2
0048  GETTABUP  R1 = _ENV[K28('DB_VALUE_KEY')]
0049  LOADK     R2 = K29 1
0050  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0051  CLOSURE   R4 = closure proto10
0052  SETTABLE  R3[K30('_DBTableGetValue')] = R4
0053  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0054  CLOSURE   R4 = closure proto11
0055  SETTABLE  R3[K31('_DBTableGetNumber')] = R4
0056  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0057  CLOSURE   R4 = closure proto12
0058  SETTABLE  R3[K32('_DBTableSet')] = R4
0059  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0060  CLOSURE   R4 = closure proto13
0061  SETTABLE  R3[K33('_DBTableRemove')] = R4
0062  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0063  CLOSURE   R4 = closure proto14
0064  SETTABLE  R3[K34('GetAnimationRound')] = R4
0065  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0066  CLOSURE   R4 = closure proto15
0067  SETTABLE  R3[K35('SetAnimationRound')] = R4
0068  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0069  CLOSURE   R4 = closure proto16
0070  SETTABLE  R3[K36('_DispatchMainWindowOpenedEvent')] = R4
0071  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0072  CLOSURE   R4 = closure proto17
0073  SETTABLE  R3[K37('_DispatchMainWindowClosedEvent')] = R4
0074  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0075  CLOSURE   R4 = closure proto18
0076  SETTABLE  R3[K38('_DispatchMainWindowAnimationEndEvent')] = R4
0077  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0078  CLOSURE   R4 = closure proto19
0079  SETTABLE  R3[K39('_DispatchMainWindowOpenedAtEventEndedEvent')] = R4
0080  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0081  CLOSURE   R4 = closure proto20
0082  SETTABLE  R3[K40('_DispatchHelpWindowClosedEvent')] = R4
0083  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0084  CLOSURE   R4 = closure proto21
0085  SETTABLE  R3[K41('GetSmallRoundCount')] = R4
0086  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0087  CLOSURE   R4 = closure proto22
0088  SETTABLE  R3[K42('GetCurrentRoundPlayerNumber')] = R4
0089  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0090  CLOSURE   R4 = closure proto23
0091  SETTABLE  R3[K43('GetRoundDefinitionIndex')] = R4
0092  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0093  CLOSURE   R4 = closure proto24
0094  SETTABLE  R3[K44('GetRoundDefinitionIndexByRound')] = R4
0095  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0096  CLOSURE   R4 = closure proto25
0097  SETTABLE  R3[K45('GetPlayerNumberByRound')] = R4
0098  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0099  CLOSURE   R4 = closure proto26
0100  SETTABLE  R3[K46('GetSelfTrack')] = R4
0101  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0102  CLOSURE   R4 = closure proto27
0103  SETTABLE  R3[K47('IsFirstTimeEntry')] = R4
0104  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0105  CLOSURE   R4 = closure proto28
0106  SETTABLE  R3[K48('IsLastRoundInLargeRound')] = R4
0107  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0108  CLOSURE   R4 = closure proto29
0109  SETTABLE  R3[K49('GetEntryGapTime')] = R4
0110  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0111  CLOSURE   R4 = closure proto30
0112  SETTABLE  R3[K50('_OnCompetitionEntryCallback')] = R4
0113  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0114  CLOSURE   R4 = closure proto31
0115  SETTABLE  R3[K51('_GetRobotPlayerNumber')] = R4
0116  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0117  CLOSURE   R4 = closure proto32
0118  SETTABLE  R3[K52('_CreateMySelfData')] = R4
0119  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0120  CLOSURE   R4 = closure proto33
0121  SETTABLE  R3[K53('_CreateRobotPlayers')] = R4
0122  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0123  CLOSURE   R4 = closure proto34
0124  SETTABLE  R3[K54('_GenerateScoreCurve')] = R4
0125  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0126  CLOSURE   R4 = closure proto35
0127  SETTABLE  R3[K55('GenerateRandomFloat')] = R4
0128  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0129  CLOSURE   R4 = closure proto36
0130  SETTABLE  R3[K56('_GetPlayerLogString')] = R4
0131  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0132  CLOSURE   R4 = closure proto37
0133  SETTABLE  R3[K57('_CheckFail')] = R4
0134  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0135  CLOSURE   R4 = closure proto38
0136  SETTABLE  R3[K58('_SetCurrentRoundFail')] = R4
0137  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0138  CLOSURE   R4 = closure proto39
0139  SETTABLE  R3[K59('AcquireActivityToken')] = R4
0140  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0141  CLOSURE   R4 = closure proto40
0142  SETTABLE  R3[K60('GetActivityTokenNumber')] = R4
0143  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0144  CLOSURE   R4 = closure proto41
0145  SETTABLE  R3[K61('_OpenWindow')] = R4
0146  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0147  CLOSURE   R4 = closure proto42
0148  SETTABLE  R3[K62('OpenStartWindow')] = R4
0149  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0150  CLOSURE   R4 = closure proto43
0151  SETTABLE  R3[K63('OpenMainWindow')] = R4
0152  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0153  CLOSURE   R4 = closure proto44
0154  SETTABLE  R3[K64('OpenInfoWindow')] = R4
0155  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0156  CLOSURE   R4 = closure proto45
0157  SETTABLE  R3[K65('OpenNewRoundWindowSmall')] = R4
0158  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0159  CLOSURE   R4 = closure proto46
0160  SETTABLE  R3[K66('OpenNewRoundWindowLarge')] = R4
0161  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0162  CLOSURE   R4 = closure proto47
0163  SETTABLE  R3[K67('OpenFailWindow')] = R4
0164  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0165  CLOSURE   R4 = closure proto48
0166  SETTABLE  R3[K68('OpenFinishFailWindow')] = R4
0167  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0168  CLOSURE   R4 = closure proto49
0169  SETTABLE  R3[K69('OpenFinishSuccessWindow')] = R4
0170  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0171  CLOSURE   R4 = closure proto50
0172  SETTABLE  R3[K70('RecordWindowDailyOpenTime')] = R4
0173  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0174  CLOSURE   R4 = closure proto51
0175  SETTABLE  R3[K71('TryOpenMainWindow')] = R4
0176  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0177  CLOSURE   R4 = closure proto52
0178  SETTABLE  R3[K72('OpenCurrentRoundEntryWindow')] = R4
0179  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0180  CLOSURE   R4 = closure proto53
0181  SETTABLE  R3[K73('OpenFinishWindow')] = R4
0182  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0183  CLOSURE   R4 = closure proto54
0184  SETTABLE  R3[K74('OnMainWindowOpened')] = R4
0185  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0186  CLOSURE   R4 = closure proto55
0187  SETTABLE  R3[K75('OnMainWindowClosed')] = R4
0188  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0189  CLOSURE   R4 = closure proto56
0190  SETTABLE  R3[K76('OnMainWindowAnimationEnd')] = R4
0191  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0192  CLOSURE   R4 = closure proto57
0193  SETTABLE  R3[K77('OnHelpWindowClosed')] = R4
0194  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0195  CLOSURE   R4 = closure proto58
0196  SETTABLE  R3[K78('_IsEntryVisible')] = R4
0197  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0198  CLOSURE   R4 = closure proto59
0199  SETTABLE  R3[K79('GetMapEntryShowConfig')] = R4
0200  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0201  CLOSURE   R4 = closure proto60
0202  SETTABLE  R3[K80('GetBoardEntryShowConfig')] = R4
0203  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0204  CLOSURE   R4 = closure proto61
0205  SETTABLE  R3[K81('ShouldShowRedPoint')] = R4
0206  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0207  CLOSURE   R4 = closure proto62
0208  SETTABLE  R3[K82('OnEntryClicked')] = R4
0209  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0210  CLOSURE   R4 = closure proto63
0211  SETTABLE  R3[K83('_LogActivityEnd')] = R4
0212  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0213  CLOSURE   R4 = closure proto64
0214  SETTABLE  R3[K84('_LogRaceCompletedBI')] = R4
0215  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0216  CLOSURE   R4 = closure proto65
0217  SETTABLE  R3[K85('TestFinishRoundSmall')] = R4
0218  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0219  CLOSURE   R4 = closure proto66
0220  SETTABLE  R3[K86('TestFinishRoundLarge')] = R4
0221  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0222  CLOSURE   R4 = closure proto67
0223  SETTABLE  R3[K87('TestGotoLastRound')] = R4
0224  GETTABUP  R3 = _ENV[K23('UpgradeRaceActivityModel')]
0225  CLOSURE   R4 = closure proto68
0226  SETTABLE  R3[K88('TestFinishWithRobot')] = R4
0227  RETURN    return R0..R-1
; ---------- proto0 [Init] ----------
  ; fn ?  line 39-42 np=3 va=0 ms=7 code=13 consts=5 upvals=1 protos=0
  ;   K[0]='m_tokenHelper'
  ;   K[1]='ActivityTokenHelper'
  ;   K[2]='Create'
  ;   K[3]='BaseRaceActivityModel'
  ;   K[4]='Init'
  ;   upvals: _ENV
  ;   locals: self(0-13), activityType(0-13), virtualDBTable(0-13)
  0000  GETTABUP  R3 = _ENV[K1('ActivityTokenHelper')]
  0001  GETTABLE  R3 = R3[K2('Create')]
  0002  MOVE      R4 = R0
  0003  MOVE      R5 = R0
  0004  CALL      R3 = call(R3, 1 args, 2 rets)
  0005  SETTABLE  R0[K0('m_tokenHelper')] = R3
  0006  GETTABUP  R3 = _ENV[K3('BaseRaceActivityModel')]
  0007  GETTABLE  R3 = R3[K4('Init')]
  0008  MOVE      R4 = R0
  0009  MOVE      R5 = R0
  0010  MOVE      R6 = R0
  0011  CALL      R3 = call(R3, 0 args, 3 rets)
  0012  RETURN    return R0..R-1
; ---------- proto1 [Destroy] ----------
  ; fn ?  line 44-47 np=1 va=0 ms=3 code=9 consts=3 upvals=1 protos=0
  ;   K[0]='BaseRaceActivityModel'
  ;   K[1]='Destroy'
  ;   K[2]='GetTokenHelper'
  ;   upvals: _ENV
  ;   locals: self(0-9)
  0000  GETTABUP  R1 = _ENV[K0('BaseRaceActivityModel')]
  0001  GETTABLE  R1 = R1[K1('Destroy')]
  0002  MOVE      R2 = R0
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  SELF      R2 = R0[K2('GetTokenHelper')] (self)
  0005  CALL      R1 = call(R1, 1 args, 1 rets)
  0006  SELF      R2 = R1[K1('Destroy')] (self)
  0007  CALL      R1 = call(R1, 0 args, 1 rets)
  0008  RETURN    return R0..R-1
; ---------- proto2 [GetActivityDefinitionByType] ----------
  ; fn ?  line 51-53 np=2 va=0 ms=3 code=4 consts=1 upvals=1 protos=0
  ;   K[0]='UpgradeRaceActivityDefinition'
  ;   upvals: _ENV
  ;   locals: self(0-4), activityType(0-4)
  0000  GETTABUP  R2 = _ENV[K0('UpgradeRaceActivityDefinition')]
  0001  GETTABLE  R2 = R2[R1]
  0002  RETURN    return R2..R1
  0003  RETURN    return R0..R-1
; ---------- proto3 [GetActivityDefinition] ----------
  ; fn ?  line 55-57 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_activityDefinition'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_activityDefinition')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto4 [GetTokenHelper] ----------
  ; fn ?  line 59-61 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_tokenHelper'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_tokenHelper')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto5 [_LoadOtherServerConfig] ----------
  ; fn ?  line 67-128 np=2 va=0 ms=26 code=162 consts=46 upvals=1 protos=1
  ;   K[0]='BaseRaceActivityModel'
  ;   K[1]='_LoadOtherServerConfig'
  ;   K[2]='Table'
  ;   K[3]='DeepCopy'
  ;   K[4]='UpgradeRaceActivityModel'
  ;   K[5]='RoundConfigKey'
  ;   K[6]='table'
  ;   K[7]='sort'
  ;   K[8]='m_config'
  ;   K[9]='roundConfigs'
  ;   K[10]='order_token_control'
  ;   K[11]='m_scoreRatio'
  ;   K[12]=nil
  ;   K[13]=1
  ;   K[14]='ratio'
  ;   K[15]='score_min'
  ;   K[16]='score_max'
  ;   K[17]='Log'
  ;   K[18]='Error'
  ;   K[19]='order_token_control表配置有误, 1v1活动不允许根据难度分进行分层'
  ;   K[20]='IsEmpty'
  ;   K[21]='order_token_control表配置有误, 1v1活动不允许有多条配置'
  ;   K[22]='GetTokenHelper'
  ;   K[23]='LoadConfig'
  ;   K[24]='m_speedCurveConfig'
  ;   K[25]='PlayerConfigKey'
  ;   K[26]='ipairs'
  ;   K[27]='round'
  ;   K[28]=6
  ;   K[29]='speed_curve'
  ;   K[30]='insert'
  ;   K[31]='GameConfig'
  ;   K[32]='IsTestMode'
  ;   K[33]='CheckSpeedCurveValid'
  ;   K[34]='delta'
  ;   K[35]='success'
  ;   K[36]='曲线积分区间存在重叠的情况, 请检查配置{ 轮次:'
  ;   K[37]=', 组:'
  ;   K[38]='group'
  ;   K[39]=', 曲线序号:'
  ;   K[40]='tostring'
  ;   K[41]=2
  ;   K[42]='曲线的时间不是递增的, 请检查配置{ 轮次:'
  ;   K[43]='ShallowCopy'
  ;   K[44]='arrCurve'
  ;   K[45]='_CheckConfigValid'
  ;   upvals: _ENV
  ;   locals: self(0-162), config(0-162), arrConfig(12-162), orderTokenConfigs(20-162), newPlayerConfigs(63-162), arrCurve(72-159), curveConfig(72-159), playerConfig(72-159), (for generator)(75-159), (for state)(75-159), (for control)(75-159), _(76-157), config(76-157), (for index)(90-146), (for limit)(90-146), (for step)(90-146), i(91-145), rCode(116-145)
  0000  GETTABUP  R2 = _ENV[K0('BaseRaceActivityModel')]
  0001  GETTABLE  R2 = R2[K1('_LoadOtherServerConfig')]
  0002  MOVE      R3 = R0
  0003  MOVE      R4 = R0
  0004  CALL      R2 = call(R2, 0 args, 2 rets)
  0005  GETTABUP  R2 = _ENV[K2('Table')]
  0006  GETTABLE  R2 = R2[K3('DeepCopy')]
  0007  GETTABUP  R3 = _ENV[K4('UpgradeRaceActivityModel')]
  0008  GETTABLE  R3 = R3[K5('RoundConfigKey')]
  0009  GETTABLE  R3 = R1[R3]
  0010  LOADBOOL  R4 = true
  0011  CALL      R2 = call(R2, 1 args, 2 rets)
  0012  GETTABUP  R3 = _ENV[K6('table')]
  0013  GETTABLE  R3 = R3[K7('sort')]
  0014  MOVE      R4 = R0
  0015  CLOSURE   R5 = closure proto0
  0016  CALL      R3 = call(R3, 0 args, 2 rets)
  0017  GETTABLE  R3 = R0[K8('m_config')]
  0018  SETTABLE  R3[K9('roundConfigs')] = R2
  0019  GETTABLE  R3 = R1[K10('order_token_control')]
  0020  SETTABLE  R0[K11('m_scoreRatio')] = K12(nil)
  0021  EQ        if R1 eq K12(nil)   -> -129245
  0022  JMP       (jump)   -> 41
  0023  GETTABLE  R4 = R3[K13(1)]
  0024  EQ        if R1 eq K12(nil)   -> -128730
  0025  JMP       (jump)   -> 41
  0026  GETTABLE  R4 = R3[K13(1)]
  0027  GETTABLE  R4 = R4[K14('ratio')]
  0028  SETTABLE  R0[K11('m_scoreRatio')] = R4
  0029  GETTABLE  R4 = R3[K13(1)]
  0030  GETTABLE  R4 = R4[K15('score_min')]
  0031  EQ        if R0 eq K12(nil)   -> -128723
  0032  JMP       (jump)   -> 37
  0033  GETTABLE  R4 = R3[K13(1)]
  0034  GETTABLE  R4 = R4[K16('score_max')]
  0035  EQ        if R1 eq K12(nil)   -> -128719
  0036  JMP       (jump)   -> 41
  0037  GETTABUP  R4 = _ENV[K17('Log')]
  0038  GETTABLE  R4 = R4[K18('Error')]
  0039  LOADK     R5 = K19 'order_token_control表配置有误, 1v1活动不允许根据难度分进行分层'
  0040  CALL      R4 = call(R4, 0 args, 1 rets)
  0041  GETTABUP  R4 = _ENV[K2('Table')]
  0042  GETTABLE  R4 = R4[K20('IsEmpty')]
  0043  MOVE      R5 = R0
  0044  CALL      R4 = call(R4, 1 args, 1 rets)
  0045  TEST      if not R4 then   -> -131024
  0046  JMP       (jump)   -> 54
  0047  LEN       R4 = len R0
  0048  LT        if R0 lt R4   -> 6710
  0049  JMP       (jump)   -> 54
  0050  GETTABUP  R4 = _ENV[K17('Log')]
  0051  GETTABLE  R4 = R4[K18('Error')]
  0052  LOADK     R5 = K21 'order_token_control表配置有误, 1v1活动不允许有多条配置'
  0053  CALL      R4 = call(R4, 0 args, 1 rets)
  0054  SELF      R5 = R0[K22('GetTokenHelper')] (self)
  0055  CALL      R4 = call(R4, 1 args, 1 rets)
  0056  SELF      R5 = R4[K23('LoadConfig')] (self)
  0057  MOVE      R6 = R0
  0058  CALL      R4 = call(R4, 0 args, 2 rets)
  0059  SETTABLE  R0[K24('m_speedCurveConfig')] = K12(nil)
  0060  GETTABUP  R4 = _ENV[K4('UpgradeRaceActivityModel')]
  0061  GETTABLE  R4 = R4[K25('PlayerConfigKey')]
  0062  GETTABLE  R4 = R1[R4]
  0063  GETTABUP  R5 = _ENV[K2('Table')]
  0064  GETTABLE  R5 = R5[K20('IsEmpty')]
  0065  MOVE      R6 = R0
  0066  CALL      R5 = call(R5, 1 args, 1 rets)
  0067  TEST      if not R5 then   -> -131002
  0068  JMP       (jump)   -> 159
  0069  NEWTABLE  R5 = {} (0 items)
  0070  SETTABLE  R0[K24('m_speedCurveConfig')] = R5
  0071  LOADNIL   R5..R5 = nil
  0072  GETTABUP  R8 = _ENV[K26('ipairs')]
  0073  MOVE      R9 = R0
  0074  CALL      R8 = call(R8, 3 args, 1 rets)
  0075  JMP       (jump)   -> 157
  0076  GETTABLE  R13 = R0[K24('m_speedCurveConfig')]
  0077  GETTABLE  R14 = R12[K27('round')]
  0078  GETTABLE  R13 = R13[R14]
  0079  EQ        if R0 eq K12(nil)   -> -124067
  0080  JMP       (jump)   -> 85
  0081  GETTABLE  R13 = R0[K24('m_speedCurveConfig')]
  0082  GETTABLE  R14 = R12[K27('round')]
  0083  NEWTABLE  R15 = {} (0 items)
  0084  SETTABLE  R13[R14] = R15
  0085  NEWTABLE  R13 = {} (0 items)
  0086  MOVE      R5 = R0
  0087  LOADK     R13 = K13 1
  0088  LOADK     R14 = K28 6
  0089  LOADK     R15 = K13 1
  0090  FORPREP   forprep R13(sBx=54)   -> 145
  0091  LOADK     R17 = K29 'speed_curve'
  0092  MOVE      R18 = R0
  0093  CONCAT    R17 = concat(R17..R17)
  0094  GETTABLE  R6 = R12[R17]
  0095  EQ        if R1 eq K12(nil)   -> -127635
  0096  JMP       (jump)   -> 145
  0097  GETTABUP  R17 = _ENV[K6('table')]
  0098  GETTABLE  R17 = R17[K30('insert')]
  0099  MOVE      R18 = R0
  0100  MOVE      R19 = R0
  0101  CALL      R17 = call(R17, 0 args, 2 rets)
  0102  GETTABUP  R17 = _ENV[K31('GameConfig')]
  0103  GETTABLE  R17 = R17[K32('IsTestMode')]
  0104  CALL      R17 = call(R17, 1 args, 0 rets)
  0105  TEST      if not R17 then   -> -130965
  0106  JMP       (jump)   -> 145
  0107  SELF      R18 = R0[K33('CheckSpeedCurveValid')] (self)
  0108  MOVE      R19 = R0
  0109  GETTABLE  R20 = R12[K34('delta')]
  0110  GETTABLE  R21 = R12[K35('success')]
  0111  EQ        if R1 eq K13(1)   -> -119938
  0112  JMP       (jump)   -> 114
  0113  LOADBOOL  R21 = false
  0114  LOADBOOL  R21 = true
  0115  CALL      R17 = call(R17, 1 args, 4 rets)
  0116  EQ        if R0 eq K13(1)   -> -121981
  0117  JMP       (jump)   -> 131
  0118  GETTABUP  R18 = _ENV[K17('Log')]
  0119  GETTABLE  R18 = R18[K18('Error')]
  0120  LOADK     R19 = K36 '曲线积分区间存在重叠的情况, 请检查配置{ 轮次:'
  0121  GETTABLE  R20 = R12[K27('round')]
  0122  LOADK     R21 = K37 ', 组:'
  0123  GETTABLE  R22 = R12[K38('group')]
  0124  LOADK     R23 = K39 ', 曲线序号:'
  0125  GETTABUP  R24 = _ENV[K40('tostring')]
  0126  MOVE      R25 = R0
  0127  CALL      R24 = call(R24, 1 args, 1 rets)
  0128  CONCAT    R19 = concat(R19..R19)
  0129  CALL      R18 = call(R18, 0 args, 1 rets)
  0130  JMP       (jump)   -> 145
  0131  EQ        if R0 eq K41(2)   -> -121938
  0132  JMP       (jump)   -> 145
  0133  GETTABUP  R18 = _ENV[K17('Log')]
  0134  GETTABLE  R18 = R18[K18('Error')]
  0135  LOADK     R19 = K42 '曲线的时间不是递增的, 请检查配置{ 轮次:'
  0136  GETTABLE  R20 = R12[K27('round')]
  0137  LOADK     R21 = K37 ', 组:'
  0138  GETTABLE  R22 = R12[K38('group')]
  0139  LOADK     R23 = K39 ', 曲线序号:'
  0140  GETTABUP  R24 = _ENV[K40('tostring')]
  0141  MOVE      R25 = R0
  0142  CALL      R24 = call(R24, 1 args, 1 rets)
  0143  CONCAT    R19 = concat(R19..R19)
  0144  CALL      R18 = call(R18, 0 args, 1 rets)
  0145  FORLOOP   forloop R13(sBx=-55)   -> 91
  0146  GETTABUP  R13 = _ENV[K2('Table')]
  0147  GETTABLE  R13 = R13[K43('ShallowCopy')]
  0148  MOVE      R14 = R0
  0149  CALL      R13 = call(R13, 1 args, 1 rets)
  0150  MOVE      R7 = R0
  0151  SETTABLE  R7[K44('arrCurve')] = R5
  0152  GETTABLE  R13 = R0[K24('m_speedCurveConfig')]
  0153  GETTABLE  R14 = R12[K27('round')]
  0154  GETTABLE  R13 = R13[R14]
  0155  GETTABLE  R14 = R12[K38('group')]
  0156  SETTABLE  R13[R14] = R7
  0157  TFORCALL  tforcall R8
  0158  TFORLOOP  tforloop R10(sBx=-83)   -> 76
  0159  SELF      R6 = R0[K45('_CheckConfigValid')] (self)
  0160  CALL      R5 = call(R5, 0 args, 1 rets)
  0161  RETURN    return R0..R-1
  ; ---------- proto0 [roundConfigs] ----------
    ; fn ?  line 73-75 np=2 va=0 ms=4 code=8 consts=1 upvals=0 protos=0
    ;   K[0]='round'
    ;   locals: a(0-8), b(0-8)
    0000  GETTABLE  R2 = R0[K0('round')]
    0001  GETTABLE  R3 = R1[K0('round')]
    0002  LT        if R1 lt R3   -> -130041
    0003  JMP       (jump)   -> 5
    0004  LOADBOOL  R2 = false
    0005  LOADBOOL  R2 = true
    0006  RETURN    return R2..R1
    0007  RETURN    return R0..R-1
; ---------- proto6 [CheckSpeedCurveValid] ----------
  ; fn ?  line 131-151 np=4 va=0 ms=15 code=32 consts=7 upvals=1 protos=0
  ;   K[0]=0
  ;   K[1]='ipairs'
  ;   K[2]='TokenPercent'
  ;   K[3]=-0.0001
  ;   K[4]=1
  ;   K[5]='TimePercent'
  ;   K[6]=2
  ;   upvals: _ENV
  ;   locals: self(0-32), curve(0-32), delta(0-32), bSuccess(0-32), lastMaxPer(1-32), lastTimePer(2-32), minPer(3-32), tmp1(3-32), tmp2(3-32), (for generator)(6-29), (for state)(6-29), (for control)(6-29), _(7-27), curveInfo(7-27)
  0000  LOADK     R4 = K0 0
  0001  LOADK     R5 = K0 0
  0002  LOADNIL   R6..R6 = nil
  0003  GETTABUP  R9 = _ENV[K1('ipairs')]
  0004  MOVE      R10 = R0
  0005  CALL      R9 = call(R9, 3 args, 1 rets)
  0006  JMP       (jump)   -> 27
  0007  GETTABLE  R14 = R13[K2('TokenPercent')]
  0008  SUB       R6 = R2 sub R14
  0009  SUB       R14 = R4 sub R6
  0010  LT        if R0 lt K3(-0.0001)   -> -123633
  0011  JMP       (jump)   -> 14
  0012  LOADK     R14 = K4 1
  0013  RETURN    return R14..R13
  0014  GETTABLE  R14 = R13[K5('TimePercent')]
  0015  LT        if R1 lt R5   -> -123882
  0016  JMP       (jump)   -> 22
  0017  TEST      if not R3 then   -> -131053
  0018  JMP       (jump)   -> 24
  0019  GETTABLE  R14 = R13[K5('TimePercent')]
  0020  EQ        if R0 eq K4(1)   -> -123622
  0021  JMP       (jump)   -> 24
  0022  LOADK     R14 = K6 2
  0023  RETURN    return R14..R13
  0024  GETTABLE  R14 = R13[K2('TokenPercent')]
  0025  ADD       R4 = R2 add R14
  0026  GETTABLE  R5 = R13[K5('TimePercent')]
  0027  TFORCALL  tforcall R9
  0028  TFORLOOP  tforloop R11(sBx=-22)   -> 7
  0029  LOADK     R9 = K0 0
  0030  RETURN    return R9..R8
  0031  RETURN    return R0..R-1
; ---------- proto7 [_CheckConfigValid] ----------
  ; fn ?  line 154-183 np=1 va=0 ms=25 code=115 consts=31 upvals=1 protos=0
  ;   K[0]='GameConfig'
  ;   K[1]='IsTestMode'
  ;   K[2]='GetRoundCount'
  ;   K[3]='GetSmallRoundCount'
  ;   K[4]=0
  ;   K[5]='Log'
  ;   K[6]='Error'
  ;   K[7]='string'
  ;   K[8]='format'
  ;   K[9]='[晋级小组赛] 轮次配置有错误，轮次必须是%d的整数倍，当前轮次上限为%d，请检查！'
  ;   K[10]='ipairs'
  ;   K[11]='m_config'
  ;   K[12]='roundConfigs'
  ;   K[13]='GetRewardByRound'
  ;   K[14]='GetPlayerNumberByRound'
  ;   K[15]=1
  ;   K[16]=5
  ;   K[17]='Table'
  ;   K[18]='IsEmpty'
  ;   K[19]='[晋级小组赛] 轮次=%d，排名=%d奖励不对，配置有错误，当前轮次人数上限为%d，晋级人数为%d，%s有奖励，请检查！'
  ;   K[20]='应该'
  ;   K[21]='不应该'
  ;   K[22]='playerNum'
  ;   K[23]='group_num'
  ;   K[24]='table'
  ;   K[25]='insert'
  ;   K[26]='%s-%d'
  ;   K[27]='group_type'
  ;   K[28]='[晋级小组赛] 轮次=%d，假人数量配置有错误，当前轮次人数上限为%d，假人数量为%d，假人数量应该为%d，当前假人配置=%s，请检查！'
  ;   K[29]='concat'
  ;   K[30]=';'
  ;   upvals: _ENV
  ;   locals: self(0-115), rewards(25-115), playerNumber(25-115), successPlayerNumber(25-115), bSuccess(25-115), bHasReward(25-115), playerNumConfigCount(25-115), playerNumConfigLog(25-115), (for generator)(29-114), (for state)(29-114), (for control)(29-114), round(30-112), roundConfig(30-112), (for index)(42-72), (for limit)(42-72), (for step)(42-72), rank(43-71), (for generator)(78-93), (for state)(78-93), (for control)(78-93), _(79-91), playerNumConfig(79-91)
  0000  GETTABUP  R1 = _ENV[K0('GameConfig')]
  0001  GETTABLE  R1 = R1[K1('IsTestMode')]
  0002  CALL      R1 = call(R1, 1 args, 0 rets)
  0003  TEST      if not R1 then   -> -131066
  0004  JMP       (jump)   -> 6
  0005  RETURN    return R0..R-1
  0006  SELF      R2 = R0[K2('GetRoundCount')] (self)
  0007  CALL      R1 = call(R1, 1 args, 1 rets)
  0008  SELF      R3 = R0[K3('GetSmallRoundCount')] (self)
  0009  CALL      R2 = call(R2, 1 args, 1 rets)
  0010  MOD       R1 = R2 mod R1
  0011  EQ        if R1 eq K4(0)   -> -130287
  0012  JMP       (jump)   -> 24
  0013  GETTABUP  R1 = _ENV[K5('Log')]
  0014  GETTABLE  R1 = R1[K6('Error')]
  0015  GETTABUP  R2 = _ENV[K7('string')]
  0016  GETTABLE  R2 = R2[K8('format')]
  0017  LOADK     R3 = K9 '[晋级小组赛] 轮次配置有错误，轮次必须是%d的整数倍，当前轮次上限为%d，请检查！'
  0018  SELF      R5 = R0[K3('GetSmallRoundCount')] (self)
  0019  CALL      R4 = call(R4, 1 args, 1 rets)
  0020  SELF      R6 = R0[K2('GetRoundCount')] (self)
  0021  CALL      R5 = call(R5, -1 args, 1 rets)
  0022  CALL      R2 = call(R2, -1 args, -1 rets)
  0023  CALL      R1 = call(R1, 0 args, -1 rets)
  0024  LOADNIL   R1..R1 = nil
  0025  GETTABUP  R8 = _ENV[K10('ipairs')]
  0026  GETTABLE  R9 = R0[K11('m_config')]
  0027  GETTABLE  R9 = R9[K12('roundConfigs')]
  0028  CALL      R8 = call(R8, 3 args, 1 rets)
  0029  JMP       (jump)   -> 112
  0030  SELF      R14 = R0[K13('GetRewardByRound')] (self)
  0031  MOVE      R15 = R0
  0032  CALL      R13 = call(R13, 1 args, 2 rets)
  0033  MOVE      R1 = R0
  0034  SELF      R14 = R0[K14('GetPlayerNumberByRound')] (self)
  0035  MOVE      R15 = R0
  0036  CALL      R13 = call(R13, 2 args, 2 rets)
  0037  MOVE      R3 = R0
  0038  MOVE      R2 = R0
  0039  LOADK     R13 = K15 1
  0040  LOADK     R14 = K16 5
  0041  LOADK     R15 = K15 1
  0042  FORPREP   forprep R13(sBx=28)   -> 71
  0043  LE        if R1 le R3   -> -122832
  0044  JMP       (jump)   -> 46
  0045  LOADBOOL  R4 = false
  0046  LOADBOOL  R4 = true
  0047  GETTABUP  R17 = _ENV[K17('Table')]
  0048  GETTABLE  R17 = R17[K18('IsEmpty')]
  0049  GETTABLE  R18 = R1[R16]
  0050  CALL      R17 = call(R17, 1 args, 1 rets)
  0051  NOT       R5 = not R0
  0052  EQ        if R1 eq R5   -> -128965
  0053  JMP       (jump)   -> 71
  0054  GETTABUP  R17 = _ENV[K5('Log')]
  0055  GETTABLE  R17 = R17[K6('Error')]
  0056  GETTABUP  R18 = _ENV[K7('string')]
  0057  GETTABLE  R18 = R18[K8('format')]
  0058  LOADK     R19 = K19 '[晋级小组赛] 轮次=%d，排名=%d奖励不对，配置有错误，当前轮次人数上限为%d，晋级人数为%d，%s有奖励，请检查！'
  0059  MOVE      R20 = R0
  0060  MOVE      R21 = R0
  0061  MOVE      R22 = R0
  0062  MOVE      R23 = R0
  0063  TEST      if not R4 then   -> -131007
  0064  JMP       (jump)   -> 68
  0065  LOADK     R24 = K20 '应该'
  0066  TEST      if not R24 then   -> -131003
  0067  JMP       (jump)   -> 69
  0068  LOADK     R24 = K21 '不应该'
  0069  CALL      R18 = call(R18, -1 args, 6 rets)
  0070  CALL      R17 = call(R17, 0 args, -1 rets)
  0071  FORLOOP   forloop R13(sBx=-29)   -> 43
  0072  LOADK     R6 = K4 0
  0073  NEWTABLE  R13 = {} (0 items)
  0074  MOVE      R7 = R0
  0075  GETTABUP  R13 = _ENV[K10('ipairs')]
  0076  GETTABLE  R14 = R12[K22('playerNum')]
  0077  CALL      R13 = call(R13, 3 args, 1 rets)
  0078  JMP       (jump)   -> 91
  0079  GETTABLE  R18 = R17[K23('group_num')]
  0080  ADD       R6 = R18 add R6
  0081  GETTABUP  R18 = _ENV[K24('table')]
  0082  GETTABLE  R18 = R18[K25('insert')]
  0083  MOVE      R19 = R0
  0084  GETTABUP  R20 = _ENV[K7('string')]
  0085  GETTABLE  R20 = R20[K8('format')]
  0086  LOADK     R21 = K26 '%s-%d'
  0087  GETTABLE  R22 = R17[K27('group_type')]
  0088  GETTABLE  R23 = R17[K23('group_num')]
  0089  CALL      R20 = call(R20, -1 args, 3 rets)
  0090  CALL      R18 = call(R18, 0 args, -1 rets)
  0091  TFORCALL  tforcall R13
  0092  TFORLOOP  tforloop R15(sBx=-14)   -> 79
  0093  SUB       R13 = K15(1) sub R2
  0094  EQ        if R1 eq R13   -> -127891
  0095  JMP       (jump)   -> 112
  0096  GETTABUP  R13 = _ENV[K5('Log')]
  0097  GETTABLE  R13 = R13[K6('Error')]
  0098  GETTABUP  R14 = _ENV[K7('string')]
  0099  GETTABLE  R14 = R14[K8('format')]
  0100  LOADK     R15 = K28 '[晋级小组赛] 轮次=%d，假人数量配置有错误，当前轮次人数上限为%d，假人数量为%d，假人数量应该为%d，当前假人配置=%s，请检查！'
  0101  MOVE      R16 = R0
  0102  MOVE      R17 = R0
  0103  MOVE      R18 = R0
  0104  SUB       R19 = K15(1) sub R2
  0105  GETTABUP  R20 = _ENV[K24('table')]
  0106  GETTABLE  R20 = R20[K29('concat')]
  0107  MOVE      R21 = R0
  0108  LOADK     R22 = K30 ';'
  0109  CALL      R20 = call(R20, -1 args, 2 rets)
  0110  CALL      R14 = call(R14, -1 args, -1 rets)
  0111  CALL      R13 = call(R13, 0 args, -1 rets)
  0112  TFORCALL  tforcall R8
  0113  TFORLOOP  tforloop R10(sBx=-84)   -> 30
  0114  RETURN    return R0..R-1
; ---------- proto8 [GetCurrentRoundReward] ----------
  ; fn ?  line 186-188 np=1 va=0 ms=5 code=6 consts=2 upvals=0 protos=0
  ;   K[0]='GetRewardByRound'
  ;   K[1]='GetCurrentRound'
  ;   locals: self(0-6)
  0000  SELF      R2 = R0[K0('GetRewardByRound')] (self)
  0001  SELF      R4 = R0[K1('GetCurrentRound')] (self)
  0002  CALL      R3 = call(R3, -1 args, 1 rets)
  0003  TAILCALL  tailcall(R1, 0)
  0004  RETURN    return R1..R0
  0005  RETURN    return R0..R-1
; ---------- proto9 [GetRewardByRound] ----------
  ; fn ?  line 196-213 np=2 va=0 ms=15 code=31 consts=9 upvals=1 protos=0
  ;   K[0]='m_config'
  ;   K[1]='roundConfigs'
  ;   K[2]='rankReward%d'
  ;   K[3]='GetPlayerNumberByRound'
  ;   K[4]=1
  ;   K[5]='string'
  ;   K[6]='format'
  ;   K[7]='table'
  ;   K[8]='insert'
  ;   upvals: _ENV
  ;   locals: self(0-31), round(0-31), roundConfig(3-31), rewards(8-31), key(9-31), reward(10-31), _(13-31), successPlayerNumber(13-31), (for index)(16-29), (for limit)(16-29), (for step)(16-29), rank(17-28)
  0000  GETTABLE  R2 = R0[K0('m_config')]
  0001  GETTABLE  R2 = R2[K1('roundConfigs')]
  0002  GETTABLE  R2 = R2[R1]
  0003  TEST      if not R2 then   -> -131066
  0004  JMP       (jump)   -> 7
  0005  NEWTABLE  R3 = {} (0 items)
  0006  RETURN    return R3..R2
  0007  NEWTABLE  R3 = {} (0 items)
  0008  LOADK     R4 = K2 'rankReward%d'
  0009  LOADNIL   R5..R5 = nil
  0010  SELF      R7 = R0[K3('GetPlayerNumberByRound')] (self)
  0011  MOVE      R8 = R0
  0012  CALL      R6 = call(R6, 2 args, 2 rets)
  0013  LOADK     R8 = K4 1
  0014  MOVE      R9 = R0
  0015  LOADK     R10 = K4 1
  0016  FORPREP   forprep R8(sBx=11)   -> 28
  0017  GETTABUP  R12 = _ENV[K5('string')]
  0018  GETTABLE  R12 = R12[K6('format')]
  0019  MOVE      R13 = R0
  0020  MOVE      R14 = R0
  0021  CALL      R12 = call(R12, 1 args, 2 rets)
  0022  GETTABLE  R5 = R2[R12]
  0023  GETTABUP  R12 = _ENV[K7('table')]
  0024  GETTABLE  R12 = R12[K8('insert')]
  0025  MOVE      R13 = R0
  0026  MOVE      R14 = R0
  0027  CALL      R12 = call(R12, 0 args, 2 rets)
  0028  FORLOOP   forloop R8(sBx=-12)   -> 17
  0029  RETURN    return R3..R2
  0030  RETURN    return R0..R-1
; ---------- proto10 [_DBTableGetValue] ----------
  ; fn ?  line 224-226 np=2 va=0 ms=6 code=7 consts=2 upvals=1 protos=0
  ;   K[0]='m_dbTable'
  ;   K[1]='GetValue'
  ;   upvals: DB_VALUE_KEY
  ;   locals: self(0-7), key(0-7)
  0000  GETTABLE  R2 = R0[K0('m_dbTable')]
  0001  SELF      R3 = R2[K1('GetValue')] (self)
  0002  MOVE      R4 = R0
  0003  GETUPVAL  R5 = DB_VALUE_KEY
  0004  TAILCALL  tailcall(R2, 0)
  0005  RETURN    return R2..R1
  0006  RETURN    return R0..R-1
; ---------- proto11 [_DBTableGetNumber] ----------
  ; fn ?  line 230-233 np=3 va=0 ms=7 code=13 consts=3 upvals=1 protos=0
  ;   K[0]=0
  ;   K[1]='tonumber'
  ;   K[2]='_DBTableGetValue'
  ;   upvals: _ENV
  ;   locals: self(0-13), key(0-13), defaultValue(0-13)
  0000  TEST      if not R2 then   -> -131069
  0001  JMP       (jump)   -> 3
  0002  LOADK     R2 = K0 0
  0003  GETTABUP  R3 = _ENV[K1('tonumber')]
  0004  SELF      R5 = R0[K2('_DBTableGetValue')] (self)
  0005  MOVE      R6 = R0
  0006  CALL      R4 = call(R4, -1 args, 2 rets)
  0007  CALL      R3 = call(R3, 1 args, -1 rets)
  0008  TEST      if not R3 then   -> -131061
  0009  JMP       (jump)   -> 11
  0010  MOVE      R3 = R0
  0011  RETURN    return R3..R2
  0012  RETURN    return R0..R-1
; ---------- proto12 [_DBTableSet] ----------
  ; fn ?  line 237-239 np=3 va=0 ms=8 code=7 consts=2 upvals=1 protos=0
  ;   K[0]='m_dbTable'
  ;   K[1]='Set'
  ;   upvals: DB_VALUE_KEY
  ;   locals: self(0-7), key(0-7), value(0-7)
  0000  GETTABLE  R3 = R0[K0('m_dbTable')]
  0001  SELF      R4 = R3[K1('Set')] (self)
  0002  MOVE      R5 = R0
  0003  GETUPVAL  R6 = DB_VALUE_KEY
  0004  MOVE      R7 = R0
  0005  CALL      R3 = call(R3, 0 args, 4 rets)
  0006  RETURN    return R0..R-1
; ---------- proto13 [_DBTableRemove] ----------
  ; fn ?  line 242-244 np=2 va=0 ms=5 code=5 consts=2 upvals=0 protos=0
  ;   K[0]='m_dbTable'
  ;   K[1]='Remove'
  ;   locals: self(0-5), key(0-5)
  0000  GETTABLE  R2 = R0[K0('m_dbTable')]
  0001  SELF      R3 = R2[K1('Remove')] (self)
  0002  MOVE      R4 = R0
  0003  CALL      R2 = call(R2, 0 args, 2 rets)
  0004  RETURN    return R0..R-1
; ---------- proto14 [GetAnimationRound] ----------
  ; fn ?  line 247-249 np=1 va=0 ms=4 code=5 consts=2 upvals=1 protos=0
  ;   K[0]='_DBTableGetNumber'
  ;   K[1]='AnimationRound'
  ;   upvals: DBKey
  ;   locals: self(0-5)
  0000  SELF      R2 = R0[K0('_DBTableGetNumber')] (self)
  0001  GETTABUP  R3 = DBKey[K1('AnimationRound')]
  0002  TAILCALL  tailcall(R1, 0)
  0003  RETURN    return R1..R0
  0004  RETURN    return R0..R-1
; ---------- proto15 [SetAnimationRound] ----------
  ; fn ?  line 252-254 np=2 va=0 ms=6 code=5 consts=2 upvals=1 protos=0
  ;   K[0]='_DBTableSet'
  ;   K[1]='AnimationRound'
  ;   upvals: DBKey
  ;   locals: self(0-5), animationRound(0-5)
  0000  SELF      R3 = R0[K0('_DBTableSet')] (self)
  0001  GETTABUP  R4 = DBKey[K1('AnimationRound')]
  0002  MOVE      R5 = R0
  0003  CALL      R2 = call(R2, 0 args, 3 rets)
  0004  RETURN    return R0..R-1
; ---------- proto16 [_DispatchMainWindowOpenedEvent] ----------
  ; fn ?  line 260-262 np=1 va=0 ms=4 code=7 consts=4 upvals=1 protos=0
  ;   K[0]='EventDispatcher'
  ;   K[1]='DispatchEvent'
  ;   K[2]='GetActivityDefinition'
  ;   K[3]='MainWindowOpenedEvent'
  ;   upvals: _ENV
  ;   locals: self(0-7)
  0000  GETTABUP  R1 = _ENV[K0('EventDispatcher')]
  0001  GETTABLE  R1 = R1[K1('DispatchEvent')]
  0002  SELF      R3 = R0[K2('GetActivityDefinition')] (self)
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  GETTABLE  R2 = R2[K3('MainWindowOpenedEvent')]
  0005  CALL      R1 = call(R1, 0 args, 1 rets)
  0006  RETURN    return R0..R-1
; ---------- proto17 [_DispatchMainWindowClosedEvent] ----------
  ; fn ?  line 264-266 np=1 va=0 ms=4 code=7 consts=4 upvals=1 protos=0
  ;   K[0]='EventDispatcher'
  ;   K[1]='DispatchEvent'
  ;   K[2]='GetActivityDefinition'
  ;   K[3]='MainWindowClosedEvent'
  ;   upvals: _ENV
  ;   locals: self(0-7)
  0000  GETTABUP  R1 = _ENV[K0('EventDispatcher')]
  0001  GETTABLE  R1 = R1[K1('DispatchEvent')]
  0002  SELF      R3 = R0[K2('GetActivityDefinition')] (self)
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  GETTABLE  R2 = R2[K3('MainWindowClosedEvent')]
  0005  CALL      R1 = call(R1, 0 args, 1 rets)
  0006  RETURN    return R0..R-1
; ---------- proto18 [_DispatchMainWindowAnimationEndEvent] ----------
  ; fn ?  line 268-270 np=1 va=0 ms=4 code=7 consts=4 upvals=1 protos=0
  ;   K[0]='EventDispatcher'
  ;   K[1]='DispatchEvent'
  ;   K[2]='GetActivityDefinition'
  ;   K[3]='MainWindowAnimationEndEvent'
  ;   upvals: _ENV
  ;   locals: self(0-7)
  0000  GETTABUP  R1 = _ENV[K0('EventDispatcher')]
  0001  GETTABLE  R1 = R1[K1('DispatchEvent')]
  0002  SELF      R3 = R0[K2('GetActivityDefinition')] (self)
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  GETTABLE  R2 = R2[K3('MainWindowAnimationEndEvent')]
  0005  CALL      R1 = call(R1, 0 args, 1 rets)
  0006  RETURN    return R0..R-1
; ---------- proto19 [_DispatchMainWindowOpenedAtEventEndedEvent] ----------
  ; fn ?  line 272-274 np=1 va=0 ms=4 code=7 consts=4 upvals=1 protos=0
  ;   K[0]='EventDispatcher'
  ;   K[1]='DispatchEvent'
  ;   K[2]='GetActivityDefinition'
  ;   K[3]='MainWindowOpenedAtEventEndedEvent'
  ;   upvals: _ENV
  ;   locals: self(0-7)
  0000  GETTABUP  R1 = _ENV[K0('EventDispatcher')]
  0001  GETTABLE  R1 = R1[K1('DispatchEvent')]
  0002  SELF      R3 = R0[K2('GetActivityDefinition')] (self)
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  GETTABLE  R2 = R2[K3('MainWindowOpenedAtEventEndedEvent')]
  0005  CALL      R1 = call(R1, 0 args, 1 rets)
  0006  RETURN    return R0..R-1
; ---------- proto20 [_DispatchHelpWindowClosedEvent] ----------
  ; fn ?  line 276-278 np=1 va=0 ms=4 code=7 consts=4 upvals=1 protos=0
  ;   K[0]='EventDispatcher'
  ;   K[1]='DispatchEvent'
  ;   K[2]='GetActivityDefinition'
  ;   K[3]='HelpWindowClosedEvent'
  ;   upvals: _ENV
  ;   locals: self(0-7)
  0000  GETTABUP  R1 = _ENV[K0('EventDispatcher')]
  0001  GETTABLE  R1 = R1[K1('DispatchEvent')]
  0002  SELF      R3 = R0[K2('GetActivityDefinition')] (self)
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  GETTABLE  R2 = R2[K3('HelpWindowClosedEvent')]
  0005  CALL      R1 = call(R1, 0 args, 1 rets)
  0006  RETURN    return R0..R-1
; ---------- proto21 [GetSmallRoundCount] ----------
  ; fn ?  line 285-287 np=1 va=0 ms=3 code=6 consts=2 upvals=0 protos=0
  ;   K[0]='GetActivityDefinition'
  ;   K[1]='RoundDefinition'
  ;   locals: self(0-6)
  0000  SELF      R2 = R0[K0('GetActivityDefinition')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  GETTABLE  R1 = R1[K1('RoundDefinition')]
  0003  LEN       R1 = len R0
  0004  RETURN    return R1..R0
  0005  RETURN    return R0..R-1
; ---------- proto22 [GetCurrentRoundPlayerNumber] ----------
  ; fn ?  line 292-294 np=1 va=0 ms=5 code=6 consts=2 upvals=0 protos=0
  ;   K[0]='GetPlayerNumberByRound'
  ;   K[1]='GetCurrentRound'
  ;   locals: self(0-6)
  0000  SELF      R2 = R0[K0('GetPlayerNumberByRound')] (self)
  0001  SELF      R4 = R0[K1('GetCurrentRound')] (self)
  0002  CALL      R3 = call(R3, -1 args, 1 rets)
  0003  TAILCALL  tailcall(R1, 0)
  0004  RETURN    return R1..R0
  0005  RETURN    return R0..R-1
; ---------- proto23 [GetRoundDefinitionIndex] ----------
  ; fn ?  line 298-300 np=1 va=0 ms=5 code=6 consts=2 upvals=0 protos=0
  ;   K[0]='GetRoundDefinitionIndexByRound'
  ;   K[1]='GetCurrentRound'
  ;   locals: self(0-6)
  0000  SELF      R2 = R0[K0('GetRoundDefinitionIndexByRound')] (self)
  0001  SELF      R4 = R0[K1('GetCurrentRound')] (self)
  0002  CALL      R3 = call(R3, -1 args, 1 rets)
  0003  TAILCALL  tailcall(R1, 0)
  0004  RETURN    return R1..R0
  0005  RETURN    return R0..R-1
; ---------- proto24 [GetRoundDefinitionIndexByRound] ----------
  ; fn ?  line 304-306 np=2 va=0 ms=5 code=7 consts=2 upvals=0 protos=0
  ;   K[0]=1
  ;   K[1]='GetSmallRoundCount'
  ;   locals: self(0-7), round(0-7)
  0000  SUB       R2 = K0(1) sub R1
  0001  SELF      R4 = R0[K1('GetSmallRoundCount')] (self)
  0002  CALL      R3 = call(R3, 1 args, 1 rets)
  0003  MOD       R2 = R3 mod R2
  0004  ADD       R2 = K0(1) add R2
  0005  RETURN    return R2..R1
  0006  RETURN    return R0..R-1
; ---------- proto25 [GetPlayerNumberByRound] ----------
  ; fn ?  line 312-317 np=2 va=0 ms=6 code=12 consts=5 upvals=0 protos=0
  ;   K[0]='GetActivityDefinition'
  ;   K[1]='RoundDefinition'
  ;   K[2]='GetRoundDefinitionIndexByRound'
  ;   K[3]='PlayerNumber'
  ;   K[4]='SuccessPlayerNumber'
  ;   locals: self(0-12), round(0-12), roundDefinition(3-12), index(6-12)
  0000  SELF      R3 = R0[K0('GetActivityDefinition')] (self)
  0001  CALL      R2 = call(R2, 1 args, 1 rets)
  0002  GETTABLE  R2 = R2[K1('RoundDefinition')]
  0003  SELF      R4 = R0[K2('GetRoundDefinitionIndexByRound')] (self)
  0004  MOVE      R5 = R0
  0005  CALL      R3 = call(R3, 1 args, 2 rets)
  0006  GETTABLE  R4 = R2[R3]
  0007  GETTABLE  R4 = R4[K3('PlayerNumber')]
  0008  GETTABLE  R5 = R2[R3]
  0009  GETTABLE  R5 = R5[K4('SuccessPlayerNumber')]
  0010  RETURN    return R4..R3
  0011  RETURN    return R0..R-1
; ---------- proto26 [GetSelfTrack] ----------
  ; fn ?  line 320-324 np=1 va=0 ms=4 code=9 consts=4 upvals=0 protos=0
  ;   K[0]='GetActivityDefinition'
  ;   K[1]='RoundDefinition'
  ;   K[2]='GetRoundDefinitionIndex'
  ;   K[3]='SelfTrack'
  ;   locals: self(0-9), roundDefinition(3-9), index(5-9)
  0000  SELF      R2 = R0[K0('GetActivityDefinition')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  GETTABLE  R1 = R1[K1('RoundDefinition')]
  0003  SELF      R3 = R0[K2('GetRoundDefinitionIndex')] (self)
  0004  CALL      R2 = call(R2, 1 args, 1 rets)
  0005  GETTABLE  R3 = R1[R2]
  0006  GETTABLE  R3 = R3[K3('SelfTrack')]
  0007  RETURN    return R3..R2
  0008  RETURN    return R0..R-1
; ---------- proto27 [IsFirstTimeEntry] ----------
  ; fn ?  line 327-330 np=1 va=0 ms=3 code=12 consts=3 upvals=0 protos=0
  ;   K[0]='GetCurrentRound'
  ;   K[1]=0
  ;   K[2]='IsFailed'
  ;   locals: self(0-12)
  0000  SELF      R2 = R0[K0('GetCurrentRound')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  LE        if R0 le K1(0)   -> -130299
  0003  JMP       (jump)   -> 8
  0004  SELF      R2 = R0[K2('IsFailed')] (self)
  0005  CALL      R1 = call(R1, 1 args, 1 rets)
  0006  NOT       R1 = not R0
  0007  JMP       (jump)   -> 10
  0008  LOADBOOL  R1 = false
  0009  LOADBOOL  R1 = true
  0010  RETURN    return R1..R0
  0011  RETURN    return R0..R-1
; ---------- proto28 [IsLastRoundInLargeRound] ----------
  ; fn ?  line 333-335 np=1 va=0 ms=4 code=11 consts=3 upvals=0 protos=0
  ;   K[0]='GetCurrentRound'
  ;   K[1]='GetSmallRoundCount'
  ;   K[2]=0
  ;   locals: self(0-11)
  0000  SELF      R2 = R0[K0('GetCurrentRound')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  SELF      R3 = R0[K1('GetSmallRoundCount')] (self)
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  MOD       R1 = R2 mod R1
  0005  EQ        if R1 eq K2(0)   -> -130295
  0006  JMP       (jump)   -> 8
  0007  LOADBOOL  R1 = false
  0008  LOADBOOL  R1 = true
  0009  RETURN    return R1..R0
  0010  RETURN    return R0..R-1
; ---------- proto29 [GetEntryGapTime] ----------
  ; fn ?  line 344-351 np=1 va=0 ms=3 code=13 consts=4 upvals=0 protos=0
  ;   K[0]='IsLastRoundInLargeRound'
  ;   K[1]='IsFailed'
  ;   K[2]='EntryGapTime'
  ;   K[3]=0
  ;   locals: self(0-13)
  0000  SELF      R2 = R0[K0('IsLastRoundInLargeRound')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  TEST      if not R1 then   -> -131068
  0003  JMP       (jump)   -> 10
  0004  SELF      R2 = R0[K1('IsFailed')] (self)
  0005  CALL      R1 = call(R1, 1 args, 1 rets)
  0006  TEST      if not R1 then   -> -131063
  0007  JMP       (jump)   -> 10
  0008  GETTABLE  R1 = R0[K2('EntryGapTime')]
  0009  RETURN    return R1..R0
  0010  LOADK     R1 = K3 0
  0011  RETURN    return R1..R0
  0012  RETURN    return R0..R-1
; ---------- proto30 [_OnCompetitionEntryCallback] ----------
  ; fn ?  line 356-359 np=9 va=0 ms=20 code=15 consts=2 upvals=1 protos=0
  ;   K[0]='BaseRaceActivityModel'
  ;   K[1]='_OnCompetitionEntryCallback'
  ;   upvals: _ENV
  ;   locals: self(0-15), lastRound(0-15), bSuccess(0-15), tbResp(0-15), reqCtx(0-15), startTime(0-15), successCallback(0-15), failCallback(0-15), args(0-15)
  0000  GETTABUP  R9 = _ENV[K0('BaseRaceActivityModel')]
  0001  GETTABLE  R9 = R9[K1('_OnCompetitionEntryCallback')]
  0002  MOVE      R10 = R0
  0003  MOVE      R11 = R0
  0004  MOVE      R12 = R0
  0005  MOVE      R13 = R0
  0006  MOVE      R14 = R0
  0007  MOVE      R15 = R0
  0008  MOVE      R16 = R0
  0009  MOVE      R17 = R0
  0010  NEWTABLE  R18 = {} (1 items)
  0011  MOVE      R19 = R0
  0012  SETLIST   setlist R18[B=1,C=1]
  0013  CALL      R9 = call(R9, 0 args, 9 rets)
  0014  RETURN    return R0..R-1
; ---------- proto31 [_GetRobotPlayerNumber] ----------
  ; fn ?  line 367-371 np=1 va=0 ms=5 code=8 consts=3 upvals=0 protos=0
  ;   K[0]='GetPlayerNumberByRound'
  ;   K[1]='GetCurrentRound'
  ;   K[2]=1
  ;   locals: self(0-8)
  0000  SELF      R2 = R0[K0('GetPlayerNumberByRound')] (self)
  0001  SELF      R4 = R0[K1('GetCurrentRound')] (self)
  0002  CALL      R3 = call(R3, 1 args, 1 rets)
  0003  ADD       R3 = K2(1) add R3
  0004  CALL      R1 = call(R1, 1 args, 2 rets)
  0005  SUB       R1 = K2(1) sub R1
  0006  RETURN    return R1..R0
  0007  RETURN    return R0..R-1
; ---------- proto32 [_CreateMySelfData] ----------
  ; fn ?  line 373-377 np=1 va=0 ms=6 code=10 consts=4 upvals=1 protos=0
  ;   K[0]='BaseRaceActivityModel'
  ;   K[1]='_CreateMySelfData'
  ;   K[2]='SetTrack'
  ;   K[3]='GetSelfTrack'
  ;   upvals: _ENV
  ;   locals: self(0-10), data(4-10)
  0000  GETTABUP  R1 = _ENV[K0('BaseRaceActivityModel')]
  0001  GETTABLE  R1 = R1[K1('_CreateMySelfData')]
  0002  MOVE      R2 = R0
  0003  CALL      R1 = call(R1, 1 args, 1 rets)
  0004  SELF      R3 = R1[K2('SetTrack')] (self)
  0005  SELF      R5 = R0[K3('GetSelfTrack')] (self)
  0006  CALL      R4 = call(R4, -1 args, 1 rets)
  0007  CALL      R2 = call(R2, 0 args, -1 rets)
  0008  RETURN    return R1..R0
  0009  RETURN    return R0..R-1
; ---------- proto33 [_CreateRobotPlayers] ----------
  ; fn ?  line 381-420 np=2 va=0 ms=20 code=117 consts=37 upvals=1 protos=0
  ;   K[0]='GetTargetScore'
  ;   K[1]='m_arrPlayerData'
  ;   K[2]='Table'
  ;   K[3]='IsEmpty'
  ;   K[4]='m_speedCurveConfig'
  ;   K[5]='ipairs'
  ;   K[6]='RacePlayerData'
  ;   K[7]='Create'
  ;   K[8]=0
  ;   K[9]=1
  ;   K[10]='score'
  ;   K[11]='_GenerateScoreCurve'
  ;   K[12]='group_type'
  ;   K[13]='second'
  ;   K[14]='GM'
  ;   K[15]='UserProfileModel'
  ;   K[16]='GenerateAllAdornmentForData'
  ;   K[17]='PkRacePlayerData'
  ;   K[18]='GameConfig'
  ;   K[19]='IsTestMode'
  ;   K[20]=nil
  ;   K[21]='Log'
  ;   K[22]='Debug'
  ;   K[23]='[匹配信息] 轮次:'
  ;   K[24]='GetCurrentRound'
  ;   K[25]='组:'
  ;   K[26]=', 曲线序号:'
  ;   K[27]=', 积分信息:'
  ;   K[28]='json'
  ;   K[29]='encode'
  ;   K[30]='UpgradeRacePlayer'
  ;   K[31]='GetCurrentRoundPlayerNumber'
  ;   K[32]='GetSelfTrack'
  ;   K[33]='table'
  ;   K[34]='insert'
  ;   K[35]='Shuffle'
  ;   K[36]='SetTrack'
  ;   upvals: _ENV
  ;   locals: self(0-117), robots(0-117), targetScore(2-117), playerData(3-117), (for generator)(14-30), (for state)(14-30), (for control)(14-30), index(15-28), value(15-28), randomIndex(32-87), (for generator)(35-87), (for state)(35-87), (for control)(35-87), index(36-85), value(36-85), arrTrack(88-117), (for index)(92-103), (for limit)(92-103), (for step)(92-103), trackNumber(93-102), (for generator)(110-116), (for state)(110-116), (for control)(110-116), index(111-114), playerData(111-114)
  0000  SELF      R3 = R0[K0('GetTargetScore')] (self)
  0001  CALL      R2 = call(R2, 1 args, 1 rets)
  0002  LOADNIL   R3..R3 = nil
  0003  NEWTABLE  R4 = {} (0 items)
  0004  SETTABLE  R0[K1('m_arrPlayerData')] = R4
  0005  GETTABUP  R4 = _ENV[K2('Table')]
  0006  GETTABLE  R4 = R4[K3('IsEmpty')]
  0007  GETTABLE  R5 = R0[K4('m_speedCurveConfig')]
  0008  CALL      R4 = call(R4, 1 args, 1 rets)
  0009  TEST      if not R4 then   -> -131061
  0010  JMP       (jump)   -> 31
  0011  GETTABUP  R4 = _ENV[K5('ipairs')]
  0012  MOVE      R5 = R0
  0013  CALL      R4 = call(R4, 3 args, 1 rets)
  0014  JMP       (jump)   -> 28
  0015  GETTABUP  R9 = _ENV[K6('RacePlayerData')]
  0016  GETTABLE  R9 = R9[K7('Create')]
  0017  MOVE      R10 = R0
  0018  MOVE      R11 = R0
  0019  MOVE      R12 = R0
  0020  LOADK     R13 = K8 0
  0021  CALL      R9 = call(R9, 1 args, 4 rets)
  0022  MOVE      R3 = R0
  0023  GETTABLE  R9 = R0[K1('m_arrPlayerData')]
  0024  GETTABLE  R10 = R0[K1('m_arrPlayerData')]
  0025  LEN       R10 = len R0
  0026  ADD       R10 = K9(1) add R10
  0027  SETTABLE  R9[R10] = R3
  0028  TFORCALL  tforcall R4
  0029  TFORLOOP  tforloop R6(sBx=-15)   -> 15
  0030  JMP       (jump)   -> 87
  0031  LOADNIL   R4..R4 = nil
  0032  GETTABUP  R5 = _ENV[K5('ipairs')]
  0033  MOVE      R6 = R0
  0034  CALL      R5 = call(R5, 3 args, 1 rets)
  0035  JMP       (jump)   -> 85
  0036  SELF      R11 = R0[K11('_GenerateScoreCurve')] (self)
  0037  GETTABLE  R12 = R9[K12('group_type')]
  0038  MOVE      R13 = R0
  0039  GETTABLE  R14 = R9[K13('second')]
  0040  CALL      R10 = call(R10, 2 args, 4 rets)
  0041  MOVE      R4 = R0
  0042  SETTABLE  R9[K10('score')] = R10
  0043  GETTABUP  R10 = _ENV[K14('GM')]
  0044  GETTABLE  R10 = R10[K15('UserProfileModel')]
  0045  SELF      R11 = R10[K16('GenerateAllAdornmentForData')] (self)
  0046  MOVE      R12 = R0
  0047  CALL      R10 = call(R10, 0 args, 2 rets)
  0048  GETTABUP  R10 = _ENV[K17('PkRacePlayerData')]
  0049  GETTABLE  R10 = R10[K7('Create')]
  0050  MOVE      R11 = R0
  0051  MOVE      R12 = R0
  0052  MOVE      R13 = R0
  0053  LOADK     R14 = K8 0
  0054  CALL      R10 = call(R10, 1 args, 4 rets)
  0055  MOVE      R3 = R0
  0056  GETTABLE  R10 = R0[K1('m_arrPlayerData')]
  0057  GETTABLE  R11 = R0[K1('m_arrPlayerData')]
  0058  LEN       R11 = len R0
  0059  ADD       R11 = K9(1) add R11
  0060  SETTABLE  R10[R11] = R3
  0061  GETTABUP  R10 = _ENV[K18('GameConfig')]
  0062  GETTABLE  R10 = R10[K19('IsTestMode')]
  0063  CALL      R10 = call(R10, 1 args, 0 rets)
  0064  TEST      if not R10 then   -> -131006
  0065  JMP       (jump)   -> 85
  0066  EQ        if R1 eq K20(nil)   -> -128680
  0067  JMP       (jump)   -> 85
  0068  GETTABUP  R10 = _ENV[K21('Log')]
  0069  GETTABLE  R10 = R10[K22('Debug')]
  0070  LOADK     R11 = K23 '[匹配信息] 轮次:'
  0071  SELF      R13 = R0[K24('GetCurrentRound')] (self)
  0072  CALL      R12 = call(R12, 1 args, 1 rets)
  0073  LOADK     R13 = K25 '组:'
  0074  GETTABLE  R14 = R9[K12('group_type')]
  0075  LOADK     R15 = K26 ', 曲线序号:'
  0076  MOVE      R16 = R0
  0077  LOADK     R17 = K27 ', 积分信息:'
  0078  GETTABUP  R18 = _ENV[K28('json')]
  0079  GETTABLE  R18 = R18[K29('encode')]
  0080  GETTABLE  R19 = R9[K10('score')]
  0081  CALL      R18 = call(R18, 1 args, 1 rets)
  0082  CONCAT    R11 = concat(R11..R11)
  0083  LOADK     R12 = K30 'UpgradeRacePlayer'
  0084  CALL      R10 = call(R10, 0 args, 2 rets)
  0085  TFORCALL  tforcall R5
  0086  TFORLOOP  tforloop R7(sBx=-51)   -> 36
  0087  NEWTABLE  R4 = {} (0 items)
  0088  LOADK     R5 = K9 1
  0089  SELF      R7 = R0[K31('GetCurrentRoundPlayerNumber')] (self)
  0090  CALL      R6 = call(R6, 1 args, 1 rets)
  0091  LOADK     R7 = K9 1
  0092  FORPREP   forprep R5(sBx=9)   -> 102
  0093  SELF      R10 = R0[K32('GetSelfTrack')] (self)
  0094  CALL      R9 = call(R9, 1 args, 1 rets)
  0095  EQ        if R1 eq R9   -> -126870
  0096  JMP       (jump)   -> 102
  0097  GETTABUP  R9 = _ENV[K33('table')]
  0098  GETTABLE  R9 = R9[K34('insert')]
  0099  MOVE      R10 = R0
  0100  MOVE      R11 = R0
  0101  CALL      R9 = call(R9, 0 args, 2 rets)
  0102  FORLOOP   forloop R5(sBx=-10)   -> 93
  0103  GETTABUP  R5 = _ENV[K2('Table')]
  0104  GETTABLE  R5 = R5[K35('Shuffle')]
  0105  MOVE      R6 = R0
  0106  CALL      R5 = call(R5, 0 args, 1 rets)
  0107  GETTABUP  R5 = _ENV[K5('ipairs')]
  0108  GETTABLE  R6 = R0[K1('m_arrPlayerData')]
  0109  CALL      R5 = call(R5, 3 args, 1 rets)
  0110  JMP       (jump)   -> 114
  0111  SELF      R11 = R9[K36('SetTrack')] (self)
  0112  GETTABLE  R12 = R4[R8]
  0113  CALL      R10 = call(R10, 0 args, 2 rets)
  0114  TFORCALL  tforcall R5
  0115  TFORLOOP  tforloop R7(sBx=-5)   -> 111
  0116  RETURN    return R0..R-1
; ---------- proto34 [_GenerateScoreCurve] ----------
  ; fn ?  line 423-464 np=4 va=0 ms=26 code=118 consts=29 upvals=1 protos=0
  ;   K[0]='GetCurrentRound'
  ;   K[1]='m_speedCurveConfig'
  ;   K[2]=nil
  ;   K[3]='Log'
  ;   K[4]='Error'
  ;   K[5]='[race_player] 没有对应的轮次或者组别，请检查: '
  ;   K[6]='nil'
  ;   K[7]='seconds'
  ;   K[8]=0
  ;   K[9]='score'
  ;   K[10]='arrCurve'
  ;   K[11]='Table'
  ;   K[12]='IsEmpty'
  ;   K[13]='[race_player] 没有可用的曲线, 请检查配置'
  ;   K[14]='delta'
  ;   K[15]='ListRandomSelectOne'
  ;   K[16]='success'
  ;   K[17]=1
  ;   K[18]='ipairs'
  ;   K[19]='math'
  ;   K[20]='max'
  ;   K[21]='floor'
  ;   K[22]='TimePercent'
  ;   K[23]=5
  ;   K[24]='GenerateRandomFloat'
  ;   K[25]='TokenPercent'
  ;   K[26]='min'
  ;   K[27]='table'
  ;   K[28]='insert'
  ;   upvals: _ENV
  ;   locals: self(0-118), group(0-118), targetScore(0-118), targetTime(0-118), round(2-118), config(9-118), arrCurve(26-118), delta(43-118), result(44-118), curveConfig(48-118), randomIndex(48-118), bSuccess(53-118), lastScore(54-118), lastSecond(55-118), second(56-118), score(56-118), (for generator)(59-105), (for state)(59-105), (for control)(59-105), _(60-103), curveInfo(60-103)
  0000  SELF      R5 = R0[K0('GetCurrentRound')] (self)
  0001  CALL      R4 = call(R4, 1 args, 1 rets)
  0002  GETTABLE  R5 = R0[K1('m_speedCurveConfig')]
  0003  GETTABLE  R5 = R5[R4]
  0004  TEST      if not R5 then   -> -131066
  0005  JMP       (jump)   -> 9
  0006  GETTABLE  R5 = R0[K1('m_speedCurveConfig')]
  0007  GETTABLE  R5 = R5[R4]
  0008  GETTABLE  R5 = R5[R1]
  0009  EQ        if R0 eq K2(nil)   -> -128243
  0010  JMP       (jump)   -> 25
  0011  GETTABUP  R6 = _ENV[K3('Log')]
  0012  GETTABLE  R6 = R6[K4('Error')]
  0013  LOADK     R7 = K5 '[race_player] 没有对应的轮次或者组别，请检查: '
  0014  TESTSET   if R1 then R8   -> -130543
  0015  JMP       (jump)   -> 17
  0016  LOADK     R8 = K6 'nil'
  0017  CONCAT    R7 = concat(R7..R7)
  0018  CALL      R6 = call(R6, 0 args, 1 rets)
  0019  NEWTABLE  R6 = {} (1 items)
  0020  NEWTABLE  R7 = {} (0 items)
  0021  SETTABLE  R7[K7('seconds')] = K8(0)
  0022  SETTABLE  R7[K9('score')] = K8(0)
  0023  SETLIST   setlist R6[B=1,C=1]
  0024  RETURN    return R6..R5
  0025  GETTABLE  R6 = R5[K10('arrCurve')]
  0026  GETTABUP  R7 = _ENV[K11('Table')]
  0027  GETTABLE  R7 = R7[K12('IsEmpty')]
  0028  MOVE      R8 = R0
  0029  CALL      R7 = call(R7, 1 args, 1 rets)
  0030  TEST      if not R7 then   -> -131040
  0031  JMP       (jump)   -> 42
  0032  GETTABUP  R7 = _ENV[K3('Log')]
  0033  GETTABLE  R7 = R7[K4('Error')]
  0034  LOADK     R8 = K13 '[race_player] 没有可用的曲线, 请检查配置'
  0035  CALL      R7 = call(R7, 0 args, 1 rets)
  0036  NEWTABLE  R7 = {} (1 items)
  0037  NEWTABLE  R8 = {} (0 items)
  0038  SETTABLE  R8[K7('seconds')] = K8(0)
  0039  SETTABLE  R8[K9('score')] = K8(0)
  0040  SETLIST   setlist R7[B=1,C=1]
  0041  RETURN    return R7..R6
  0042  GETTABLE  R7 = R5[K14('delta')]
  0043  NEWTABLE  R8 = {} (0 items)
  0044  GETTABUP  R9 = _ENV[K11('Table')]
  0045  GETTABLE  R9 = R9[K15('ListRandomSelectOne')]
  0046  MOVE      R10 = R0
  0047  CALL      R9 = call(R9, 2 args, 1 rets)
  0048  GETTABLE  R11 = R5[K16('success')]
  0049  EQ        if R1 eq K17(1)   -> -125116
  0050  JMP       (jump)   -> 52
  0051  LOADBOOL  R11 = false
  0052  LOADBOOL  R11 = true
  0053  LOADK     R12 = K8 0
  0054  LOADK     R13 = K8 0
  0055  LOADNIL   R14..R14 = nil
  0056  GETTABUP  R16 = _ENV[K18('ipairs')]
  0057  MOVE      R17 = R0
  0058  CALL      R16 = call(R16, 3 args, 1 rets)
  0059  JMP       (jump)   -> 103
  0060  GETTABUP  R21 = _ENV[K19('math')]
  0061  GETTABLE  R21 = R21[K20('max')]
  0062  GETTABUP  R22 = _ENV[K19('math')]
  0063  GETTABLE  R22 = R22[K21('floor')]
  0064  GETTABLE  R23 = R20[K22('TimePercent')]
  0065  MUL       R23 = R23 mul R3
  0066  CALL      R22 = call(R22, 1 args, 1 rets)
  0067  LOADK     R23 = K23 5
  0068  CALL      R21 = call(R21, 1 args, 2 rets)
  0069  MOVE      R14 = R0
  0070  GETTABUP  R21 = _ENV[K19('math')]
  0071  GETTABLE  R21 = R21[K21('floor')]
  0072  SELF      R23 = R0[K24('GenerateRandomFloat')] (self)
  0073  GETTABLE  R24 = R20[K25('TokenPercent')]
  0074  SUB       R24 = R7 sub R24
  0075  GETTABLE  R25 = R20[K25('TokenPercent')]
  0076  ADD       R25 = R7 add R25
  0077  CALL      R22 = call(R22, 1 args, 3 rets)
  0078  MUL       R22 = R22 mul R2
  0079  CALL      R21 = call(R21, 1 args, 1 rets)
  0080  MOVE      R15 = R0
  0081  GETTABUP  R21 = _ENV[K19('math')]
  0082  GETTABLE  R21 = R21[K26('min')]
  0083  TEST      if not R11 then   -> -130987
  0084  JMP       (jump)   -> 87
  0085  TESTSET   if R1 then R22   -> -129960
  0086  JMP       (jump)   -> 88
  0087  SUB       R22 = K17(1) sub R2
  0088  GETTABUP  R23 = _ENV[K19('math')]
  0089  GETTABLE  R23 = R23[K20('max')]
  0090  MOVE      R24 = R0
  0091  MOVE      R25 = R0
  0092  CALL      R23 = call(R23, -1 args, 2 rets)
  0093  CALL      R21 = call(R21, 1 args, -1 rets)
  0094  MOVE      R15 = R0
  0095  GETTABUP  R21 = _ENV[K27('table')]
  0096  GETTABLE  R21 = R21[K28('insert')]
  0097  MOVE      R22 = R0
  0098  NEWTABLE  R23 = {} (0 items)
  0099  SETTABLE  R23[K7('seconds')] = R14
  0100  SETTABLE  R23[K9('score')] = R15
  0101  CALL      R21 = call(R21, 0 args, 2 rets)
  0102  MOVE      R12 = R0
  0103  TFORCALL  tforcall R16
  0104  TFORLOOP  tforloop R18(sBx=-45)   -> 60
  0105  TEST      if not R11 then   -> -130965
  0106  JMP       (jump)   -> 114
  0107  GETTABUP  R16 = _ENV[K27('table')]
  0108  GETTABLE  R16 = R16[K28('insert')]
  0109  MOVE      R17 = R0
  0110  NEWTABLE  R18 = {} (0 items)
  0111  SETTABLE  R18[K7('seconds')] = R3
  0112  SETTABLE  R18[K9('score')] = R2
  0113  CALL      R16 = call(R16, 0 args, 2 rets)
  0114  MOVE      R16 = R0
  0115  MOVE      R17 = R0
  0116  RETURN    return R16..R15
  0117  RETURN    return R0..R-1
; ---------- proto35 [GenerateRandomFloat] ----------
  ; fn ?  line 466-468 np=3 va=0 ms=5 code=8 consts=2 upvals=1 protos=0
  ;   K[0]='MathUtil'
  ;   K[1]='Random'
  ;   upvals: _ENV
  ;   locals: self(0-8), min(0-8), max(0-8)
  0000  SUB       R3 = R1 sub R2
  0001  GETTABUP  R4 = _ENV[K0('MathUtil')]
  0002  GETTABLE  R4 = R4[K1('Random')]
  0003  CALL      R4 = call(R4, 1 args, 0 rets)
  0004  MUL       R3 = R4 mul R3
  0005  ADD       R3 = R3 add R1
  0006  RETURN    return R3..R2
  0007  RETURN    return R0..R-1
; ---------- proto36 [_GetPlayerLogString] ----------
  ; fn ?  line 470-481 np=1 va=0 ms=15 code=45 consts=16 upvals=1 protos=0
  ;   K[0]='ipairs'
  ;   K[1]='m_arrPlayerData'
  ;   K[2]='string'
  ;   K[3]='format'
  ;   K[4]='名次：%d，分数：%d，Id：%d，名称：%s'
  ;   K[5]='GetRank'
  ;   K[6]='GetCurScore'
  ;   K[7]='GetGapTime'
  ;   K[8]='GetUserId'
  ;   K[9]='GetUserName'
  ;   K[10]='IsMySelf'
  ;   K[11]='<color=#FFA000>%s</color>'
  ;   K[12]='table'
  ;   K[13]='insert'
  ;   K[14]='concat'
  ;   K[15]='\n'
  ;   upvals: _ENV
  ;   locals: self(0-45), logStr(1-45), logStrPlayer(2-45), (for generator)(5-38), (for state)(5-38), (for control)(5-38), _(6-36), playerData(6-36)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  LOADNIL   R2..R2 = nil
  0002  GETTABUP  R3 = _ENV[K0('ipairs')]
  0003  GETTABLE  R4 = R0[K1('m_arrPlayerData')]
  0004  CALL      R3 = call(R3, 3 args, 1 rets)
  0005  JMP       (jump)   -> 36
  0006  GETTABUP  R8 = _ENV[K2('string')]
  0007  GETTABLE  R8 = R8[K3('format')]
  0008  LOADK     R9 = K4 '名次：%d，分数：%d，Id：%d，名称：%s'
  0009  SELF      R11 = R7[K5('GetRank')] (self)
  0010  CALL      R10 = call(R10, 1 args, 1 rets)
  0011  SELF      R12 = R7[K6('GetCurScore')] (self)
  0012  SELF      R14 = R0[K7('GetGapTime')] (self)
  0013  CALL      R13 = call(R13, -1 args, 1 rets)
  0014  CALL      R11 = call(R11, 1 args, -1 rets)
  0015  SELF      R13 = R7[K8('GetUserId')] (self)
  0016  CALL      R12 = call(R12, 1 args, 1 rets)
  0017  SELF      R14 = R7[K9('GetUserName')] (self)
  0018  CALL      R13 = call(R13, -1 args, 1 rets)
  0019  CALL      R8 = call(R8, 1 args, -1 rets)
  0020  MOVE      R2 = R0
  0021  SELF      R9 = R7[K10('IsMySelf')] (self)
  0022  CALL      R8 = call(R8, 1 args, 1 rets)
  0023  TEST      if not R8 then   -> -131047
  0024  JMP       (jump)   -> 31
  0025  GETTABUP  R8 = _ENV[K2('string')]
  0026  GETTABLE  R8 = R8[K3('format')]
  0027  LOADK     R9 = K11 '<color=#FFA000>%s</color>'
  0028  MOVE      R10 = R0
  0029  CALL      R8 = call(R8, 1 args, 2 rets)
  0030  MOVE      R2 = R0
  0031  GETTABUP  R8 = _ENV[K12('table')]
  0032  GETTABLE  R8 = R8[K13('insert')]
  0033  MOVE      R9 = R0
  0034  MOVE      R10 = R0
  0035  CALL      R8 = call(R8, 0 args, 2 rets)
  0036  TFORCALL  tforcall R3
  0037  TFORLOOP  tforloop R5(sBx=-32)   -> 6
  0038  GETTABUP  R3 = _ENV[K12('table')]
  0039  GETTABLE  R3 = R3[K14('concat')]
  0040  MOVE      R4 = R0
  0041  LOADK     R5 = K15 '\n'
  0042  TAILCALL  tailcall(R3, 0)
  0043  RETURN    return R3..R2
  0044  RETURN    return R0..R-1
; ---------- proto37 [_CheckFail] ----------
  ; fn ?  line 487-505 np=1 va=0 ms=8 code=45 consts=20 upvals=1 protos=0
  ;   K[0]='BaseRaceActivityModel'
  ;   K[1]='_CheckFail'
  ;   K[2]='UpdatePlayerRank'
  ;   K[3]='GameConfig'
  ;   K[4]='IsTestMode'
  ;   K[5]='Log'
  ;   K[6]='Info'
  ;   K[7]='string'
  ;   K[8]='format'
  ;   K[9]='[晋级小组赛] 名次更新了！当前数据为：\n%s'
  ;   K[10]='_GetPlayerLogString'
  ;   K[11]='GetCurrentRoundPlayerNumber'
  ;   K[12]='GetMyRank'
  ;   K[13]=1
  ;   K[14]='m_arrPlayerData'
  ;   K[15]='GetCurScore'
  ;   K[16]='GetGapTime'
  ;   K[17]='GetTargetScore'
  ;   K[18]='[晋级小组赛] 失败了！前一名玩家完成了！'
  ;   K[19]='_SetCurrentRoundFail'
  ;   upvals: _ENV
  ;   locals: self(0-45), _(22-45), successPlayerNumber(22-45), myRank(24-45)
  0000  GETTABUP  R1 = _ENV[K0('BaseRaceActivityModel')]
  0001  GETTABLE  R1 = R1[K1('_CheckFail')]
  0002  MOVE      R2 = R0
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  SELF      R2 = R0[K2('UpdatePlayerRank')] (self)
  0005  CALL      R1 = call(R1, 0 args, 1 rets)
  0006  GETTABUP  R1 = _ENV[K3('GameConfig')]
  0007  GETTABLE  R1 = R1[K4('IsTestMode')]
  0008  CALL      R1 = call(R1, 1 args, 0 rets)
  0009  TEST      if not R1 then   -> -131061
  0010  JMP       (jump)   -> 20
  0011  GETTABUP  R1 = _ENV[K5('Log')]
  0012  GETTABLE  R1 = R1[K6('Info')]
  0013  GETTABUP  R2 = _ENV[K7('string')]
  0014  GETTABLE  R2 = R2[K8('format')]
  0015  LOADK     R3 = K9 '[晋级小组赛] 名次更新了！当前数据为：\n%s'
  0016  SELF      R5 = R0[K10('_GetPlayerLogString')] (self)
  0017  CALL      R4 = call(R4, -1 args, 1 rets)
  0018  CALL      R2 = call(R2, -1 args, -1 rets)
  0019  CALL      R1 = call(R1, 0 args, -1 rets)
  0020  SELF      R2 = R0[K11('GetCurrentRoundPlayerNumber')] (self)
  0021  CALL      R1 = call(R1, 2 args, 1 rets)
  0022  SELF      R4 = R0[K12('GetMyRank')] (self)
  0023  CALL      R3 = call(R3, 1 args, 1 rets)
  0024  LT        if R0 lt R3   -> 6685
  0025  JMP       (jump)   -> 44
  0026  LT        if R0 lt R3   -> -130017
  0027  JMP       (jump)   -> 44
  0028  GETTABLE  R4 = R0[K14('m_arrPlayerData')]
  0029  GETTABLE  R4 = R4[R2]
  0030  SELF      R5 = R4[K15('GetCurScore')] (self)
  0031  SELF      R7 = R0[K16('GetGapTime')] (self)
  0032  CALL      R6 = call(R6, -1 args, 1 rets)
  0033  CALL      R4 = call(R4, 1 args, -1 rets)
  0034  SELF      R6 = R0[K17('GetTargetScore')] (self)
  0035  CALL      R5 = call(R5, 1 args, 1 rets)
  0036  LE        if R0 le R4   -> -128470
  0037  JMP       (jump)   -> 44
  0038  GETTABUP  R4 = _ENV[K5('Log')]
  0039  GETTABLE  R4 = R4[K6('Info')]
  0040  LOADK     R5 = K18 '[晋级小组赛] 失败了！前一名玩家完成了！'
  0041  CALL      R4 = call(R4, 0 args, 1 rets)
  0042  SELF      R5 = R0[K19('_SetCurrentRoundFail')] (self)
  0043  CALL      R4 = call(R4, 0 args, 1 rets)
  0044  RETURN    return R0..R-1
; ---------- proto38 [_SetCurrentRoundFail] ----------
  ; fn ?  line 508-512 np=1 va=0 ms=4 code=8 consts=3 upvals=1 protos=0
  ;   K[0]='_LogActivityEnd'
  ;   K[1]='BaseRaceActivityModel'
  ;   K[2]='_SetCurrentRoundFail'
  ;   upvals: _ENV
  ;   locals: self(0-8)
  0000  SELF      R2 = R0[K0('_LogActivityEnd')] (self)
  0001  LOADBOOL  R3 = false
  0002  CALL      R1 = call(R1, 0 args, 2 rets)
  0003  GETTABUP  R1 = _ENV[K1('BaseRaceActivityModel')]
  0004  GETTABLE  R1 = R1[K2('_SetCurrentRoundFail')]
  0005  MOVE      R2 = R0
  0006  CALL      R1 = call(R1, 0 args, 1 rets)
  0007  RETURN    return R0..R-1
; ---------- proto39 [AcquireActivityToken] ----------
  ; fn ?  line 523-527 np=2 va=0 ms=6 code=8 consts=4 upvals=1 protos=0
  ;   K[0]=0
  ;   K[1]='_AddMyScore'
  ;   K[2]='RaceActivityLogBIType'
  ;   K[3]='Order'
  ;   upvals: _ENV
  ;   locals: self(0-8), score(0-8)
  0000  LT        if R0 lt R1   -> 3
  0001  JMP       (jump)   -> 7
  0002  SELF      R3 = R0[K1('_AddMyScore')] (self)
  0003  MOVE      R4 = R0
  0004  GETTABUP  R5 = _ENV[K2('RaceActivityLogBIType')]
  0005  GETTABLE  R5 = R5[K3('Order')]
  0006  CALL      R2 = call(R2, 0 args, 3 rets)
  0007  RETURN    return R0..R-1
; ---------- proto40 [GetActivityTokenNumber] ----------
  ; fn ?  line 529-531 np=1 va=0 ms=3 code=4 consts=1 upvals=0 protos=0
  ;   K[0]='GetMyScore'
  ;   locals: self(0-4)
  0000  SELF      R2 = R0[K0('GetMyScore')] (self)
  0001  TAILCALL  tailcall(R1, 0)
  0002  RETURN    return R1..R0
  0003  RETURN    return R0..R-1
; ---------- proto41 [_OpenWindow] ----------
  ; fn ?  line 538-540 np=2 va=1 ms=8 code=11 consts=5 upvals=1 protos=0
  ;   K[0]='GM'
  ;   K[1]='UIManager'
  ;   K[2]='OpenView'
  ;   K[3]='GetType'
  ;   K[4]='GetId'
  ;   upvals: _ENV
  ;   locals: self(0-11), prefabName(0-11)
  0000  GETTABUP  R2 = _ENV[K0('GM')]
  0001  GETTABLE  R2 = R2[K1('UIManager')]
  0002  SELF      R3 = R2[K2('OpenView')] (self)
  0003  MOVE      R4 = R0
  0004  SELF      R6 = R0[K3('GetType')] (self)
  0005  CALL      R5 = call(R5, 1 args, 1 rets)
  0006  SELF      R7 = R0[K4('GetId')] (self)
  0007  CALL      R6 = call(R6, 1 args, 1 rets)
  0008  VARARG    R7 = vararg(0)
  0009  CALL      R2 = call(R2, 0 args, -1 rets)
  0010  RETURN    return R0..R-1
; ---------- proto42 [OpenStartWindow] ----------
  ; fn ?  line 544-546 np=2 va=0 ms=6 code=7 consts=3 upvals=0 protos=0
  ;   K[0]='_OpenWindow'
  ;   K[1]='GetActivityDefinition'
  ;   K[2]='StartWindowPrefabName'
  ;   locals: self(0-7), bAuto(0-7)
  0000  SELF      R3 = R0[K0('_OpenWindow')] (self)
  0001  SELF      R5 = R0[K1('GetActivityDefinition')] (self)
  0002  CALL      R4 = call(R4, 1 args, 1 rets)
  0003  GETTABLE  R4 = R4[K2('StartWindowPrefabName')]
  0004  MOVE      R5 = R0
  0005  CALL      R2 = call(R2, 0 args, 3 rets)
  0006  RETURN    return R0..R-1
; ---------- proto43 [OpenMainWindow] ----------
  ; fn ?  line 550-552 np=2 va=0 ms=6 code=7 consts=3 upvals=0 protos=0
  ;   K[0]='_OpenWindow'
  ;   K[1]='GetActivityDefinition'
  ;   K[2]='MainWindowPrefabName'
  ;   locals: self(0-7), bAuto(0-7)
  0000  SELF      R3 = R0[K0('_OpenWindow')] (self)
  0001  SELF      R5 = R0[K1('GetActivityDefinition')] (self)
  0002  CALL      R4 = call(R4, 1 args, 1 rets)
  0003  GETTABLE  R4 = R4[K2('MainWindowPrefabName')]
  0004  MOVE      R5 = R0
  0005  CALL      R2 = call(R2, 0 args, 3 rets)
  0006  RETURN    return R0..R-1
; ---------- proto44 [OpenInfoWindow] ----------
  ; fn ?  line 554-556 np=2 va=0 ms=6 code=7 consts=3 upvals=0 protos=0
  ;   K[0]='_OpenWindow'
  ;   K[1]='GetActivityDefinition'
  ;   K[2]='HelpWindowPrefabName'
  ;   locals: self(0-7), bAuto(0-7)
  0000  SELF      R3 = R0[K0('_OpenWindow')] (self)
  0001  SELF      R5 = R0[K1('GetActivityDefinition')] (self)
  0002  CALL      R4 = call(R4, 1 args, 1 rets)
  0003  GETTABLE  R4 = R4[K2('HelpWindowPrefabName')]
  0004  MOVE      R5 = R0
  0005  CALL      R2 = call(R2, 0 args, 3 rets)
  0006  RETURN    return R0..R-1
; ---------- proto45 [OpenNewRoundWindowSmall] ----------
  ; fn ?  line 560-562 np=2 va=0 ms=6 code=7 consts=3 upvals=0 protos=0
  ;   K[0]='_OpenWindow'
  ;   K[1]='GetActivityDefinition'
  ;   K[2]='NewRoundWindowSmallPrefabName'
  ;   locals: self(0-7), bAuto(0-7)
  0000  SELF      R3 = R0[K0('_OpenWindow')] (self)
  0001  SELF      R5 = R0[K1('GetActivityDefinition')] (self)
  0002  CALL      R4 = call(R4, 1 args, 1 rets)
  0003  GETTABLE  R4 = R4[K2('NewRoundWindowSmallPrefabName')]
  0004  MOVE      R5 = R0
  0005  CALL      R2 = call(R2, 0 args, 3 rets)
  0006  RETURN    return R0..R-1
; ---------- proto46 [OpenNewRoundWindowLarge] ----------
  ; fn ?  line 566-568 np=2 va=0 ms=6 code=7 consts=3 upvals=0 protos=0
  ;   K[0]='_OpenWindow'
  ;   K[1]='GetActivityDefinition'
  ;   K[2]='NewRoundWindowLargePrefabName'
  ;   locals: self(0-7), bAuto(0-7)
  0000  SELF      R3 = R0[K0('_OpenWindow')] (self)
  0001  SELF      R5 = R0[K1('GetActivityDefinition')] (self)
  0002  CALL      R4 = call(R4, 1 args, 1 rets)
  0003  GETTABLE  R4 = R4[K2('NewRoundWindowLargePrefabName')]
  0004  MOVE      R5 = R0
  0005  CALL      R2 = call(R2, 0 args, 3 rets)
  0006  RETURN    return R0..R-1
; ---------- proto47 [OpenFailWindow] ----------
  ; fn ?  line 572-574 np=2 va=0 ms=6 code=7 consts=3 upvals=0 protos=0
  ;   K[0]='_OpenWindow'
  ;   K[1]='GetActivityDefinition'
  ;   K[2]='FailWindowPrefabName'
  ;   locals: self(0-7), bAuto(0-7)
  0000  SELF      R3 = R0[K0('_OpenWindow')] (self)
  0001  SELF      R5 = R0[K1('GetActivityDefinition')] (self)
  0002  CALL      R4 = call(R4, 1 args, 1 rets)
  0003  GETTABLE  R4 = R4[K2('FailWindowPrefabName')]
  0004  MOVE      R5 = R0
  0005  CALL      R2 = call(R2, 0 args, 3 rets)
  0006  RETURN    return R0..R-1
; ---------- proto48 [OpenFinishFailWindow] ----------
  ; fn ?  line 578-580 np=2 va=0 ms=6 code=7 consts=3 upvals=0 protos=0
  ;   K[0]='_OpenWindow'
  ;   K[1]='GetActivityDefinition'
  ;   K[2]='FinishFailWindowPrefabName'
  ;   locals: self(0-7), bAuto(0-7)
  0000  SELF      R3 = R0[K0('_OpenWindow')] (self)
  0001  SELF      R5 = R0[K1('GetActivityDefinition')] (self)
  0002  CALL      R4 = call(R4, 1 args, 1 rets)
  0003  GETTABLE  R4 = R4[K2('FinishFailWindowPrefabName')]
  0004  MOVE      R5 = R0
  0005  CALL      R2 = call(R2, 0 args, 3 rets)
  0006  RETURN    return R0..R-1
; ---------- proto49 [OpenFinishSuccessWindow] ----------
  ; fn ?  line 584-586 np=2 va=0 ms=6 code=7 consts=3 upvals=0 protos=0
  ;   K[0]='_OpenWindow'
  ;   K[1]='GetActivityDefinition'
  ;   K[2]='FinishSuccessWindowPrefabName'
  ;   locals: self(0-7), bAuto(0-7)
  0000  SELF      R3 = R0[K0('_OpenWindow')] (self)
  0001  SELF      R5 = R0[K1('GetActivityDefinition')] (self)
  0002  CALL      R4 = call(R4, 1 args, 1 rets)
  0003  GETTABLE  R4 = R4[K2('FinishSuccessWindowPrefabName')]
  0004  MOVE      R5 = R0
  0005  CALL      R2 = call(R2, 0 args, 3 rets)
  0006  RETURN    return R0..R-1
; ---------- proto50 [RecordWindowDailyOpenTime] ----------
  ; fn ?  line 589-591 np=1 va=0 ms=5 code=10 consts=7 upvals=1 protos=0
  ;   K[0]='PlayerPrefs'
  ;   K[1]='SetInt'
  ;   K[2]='EPlayerPrefKey'
  ;   K[3]='UpgradeRaceActivityDailyOpenTime'
  ;   K[4]='GM'
  ;   K[5]='GameModel'
  ;   K[6]='GetServerTime'
  ;   upvals: _ENV
  ;   locals: self(0-10)
  0000  GETTABUP  R1 = _ENV[K0('PlayerPrefs')]
  0001  GETTABLE  R1 = R1[K1('SetInt')]
  0002  GETTABUP  R2 = _ENV[K2('EPlayerPrefKey')]
  0003  GETTABLE  R2 = R2[K3('UpgradeRaceActivityDailyOpenTime')]
  0004  GETTABUP  R3 = _ENV[K4('GM')]
  0005  GETTABLE  R3 = R3[K5('GameModel')]
  0006  SELF      R4 = R3[K6('GetServerTime')] (self)
  0007  CALL      R3 = call(R3, -1 args, 1 rets)
  0008  CALL      R1 = call(R1, 0 args, -1 rets)
  0009  RETURN    return R0..R-1
; ---------- proto51 [TryOpenMainWindow] ----------
  ; fn ?  line 594-603 np=1 va=0 ms=4 code=11 consts=3 upvals=0 protos=1
  ;   K[0]='HasNetwork'
  ;   K[1]='OnNetError'
  ;   K[2]='OpenMainWindow'
  ;   locals: self(0-11)
  0000  SELF      R2 = R0[K0('HasNetwork')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  TEST      if not R1 then   -> -131067
  0003  JMP       (jump)   -> 8
  0004  SELF      R2 = R0[K1('OnNetError')] (self)
  0005  CLOSURE   R3 = closure proto0
  0006  CALL      R1 = call(R1, 0 args, 2 rets)
  0007  RETURN    return R0..R-1
  0008  SELF      R2 = R0[K2('OpenMainWindow')] (self)
  0009  CALL      R1 = call(R1, 0 args, 1 rets)
  0010  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 597-599 np=0 va=0 ms=2 code=4 consts=1 upvals=1 protos=0
    ;   K[0]='TryOpenMainWindow'
    ;   upvals: self
    0000  GETUPVAL  R0 = self
    0001  SELF      R1 = R0[K0('TryOpenMainWindow')] (self)
    0002  CALL      R0 = call(R0, 0 args, 1 rets)
    0003  RETURN    return R0..R-1
; ---------- proto52 [OpenCurrentRoundEntryWindow] ----------
  ; fn ?  line 607-621 np=2 va=0 ms=5 code=28 consts=7 upvals=0 protos=0
  ;   K[0]='IsFirstTimeEntry'
  ;   K[1]='OpenStartWindow'
  ;   K[2]='IsFailed'
  ;   K[3]='OpenFailWindow'
  ;   K[4]='IsLastRoundInLargeRound'
  ;   K[5]='OpenNewRoundWindowLarge'
  ;   K[6]='OpenNewRoundWindowSmall'
  ;   locals: self(0-28), bAuto(0-28)
  0000  SELF      R3 = R0[K0('IsFirstTimeEntry')] (self)
  0001  CALL      R2 = call(R2, 1 args, 1 rets)
  0002  TEST      if not R2 then   -> -131068
  0003  JMP       (jump)   -> 8
  0004  SELF      R3 = R0[K1('OpenStartWindow')] (self)
  0005  MOVE      R4 = R0
  0006  CALL      R2 = call(R2, 0 args, 2 rets)
  0007  JMP       (jump)   -> 27
  0008  SELF      R3 = R0[K2('IsFailed')] (self)
  0009  CALL      R2 = call(R2, 1 args, 1 rets)
  0010  TEST      if not R2 then   -> -131060
  0011  JMP       (jump)   -> 16
  0012  SELF      R3 = R0[K3('OpenFailWindow')] (self)
  0013  MOVE      R4 = R0
  0014  CALL      R2 = call(R2, 0 args, 2 rets)
  0015  JMP       (jump)   -> 27
  0016  SELF      R3 = R0[K4('IsLastRoundInLargeRound')] (self)
  0017  CALL      R2 = call(R2, 1 args, 1 rets)
  0018  TEST      if not R2 then   -> -131052
  0019  JMP       (jump)   -> 24
  0020  SELF      R3 = R0[K5('OpenNewRoundWindowLarge')] (self)
  0021  MOVE      R4 = R0
  0022  CALL      R2 = call(R2, 0 args, 2 rets)
  0023  JMP       (jump)   -> 27
  0024  SELF      R3 = R0[K6('OpenNewRoundWindowSmall')] (self)
  0025  MOVE      R4 = R0
  0026  CALL      R2 = call(R2, 0 args, 2 rets)
  0027  RETURN    return R0..R-1
; ---------- proto53 [OpenFinishWindow] ----------
  ; fn ?  line 625-631 np=2 va=0 ms=5 code=12 consts=3 upvals=0 protos=0
  ;   K[0]='_IsEndRound'
  ;   K[1]='OpenFinishSuccessWindow'
  ;   K[2]='OpenFinishFailWindow'
  ;   locals: self(0-12), bAuto(0-12)
  0000  SELF      R3 = R0[K0('_IsEndRound')] (self)
  0001  CALL      R2 = call(R2, 1 args, 1 rets)
  0002  TEST      if not R2 then   -> -131068
  0003  JMP       (jump)   -> 8
  0004  SELF      R3 = R0[K1('OpenFinishSuccessWindow')] (self)
  0005  MOVE      R4 = R0
  0006  CALL      R2 = call(R2, 0 args, 2 rets)
  0007  JMP       (jump)   -> 11
  0008  SELF      R3 = R0[K2('OpenFinishFailWindow')] (self)
  0009  MOVE      R4 = R0
  0010  CALL      R2 = call(R2, 0 args, 2 rets)
  0011  RETURN    return R0..R-1
; ---------- proto54 [OnMainWindowOpened] ----------
  ; fn ?  line 635-641 np=2 va=0 ms=4 code=13 consts=5 upvals=1 protos=0
  ;   K[0]='_DispatchMainWindowOpenedEvent'
  ;   K[1]='GetState'
  ;   K[2]='ActivityState'
  ;   K[3]='Ended'
  ;   K[4]='_DispatchMainWindowOpenedAtEventEndedEvent'
  ;   upvals: _ENV
  ;   locals: self(0-13), bAutoPop(0-13)
  0000  SELF      R3 = R0[K0('_DispatchMainWindowOpenedEvent')] (self)
  0001  CALL      R2 = call(R2, 0 args, 1 rets)
  0002  SELF      R3 = R0[K1('GetState')] (self)
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  GETTABUP  R3 = _ENV[K2('ActivityState')]
  0005  GETTABLE  R3 = R3[K3('Ended')]
  0006  EQ        if R0 eq R3   -> -130037
  0007  JMP       (jump)   -> 12
  0008  TEST      if not R1 then   -> -131062
  0009  JMP       (jump)   -> 12
  0010  SELF      R3 = R0[K4('_DispatchMainWindowOpenedAtEventEndedEvent')] (self)
  0011  CALL      R2 = call(R2, 0 args, 1 rets)
  0012  RETURN    return R0..R-1
; ---------- proto55 [OnMainWindowClosed] ----------
  ; fn ?  line 644-646 np=1 va=0 ms=3 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='_DispatchMainWindowClosedEvent'
  ;   locals: self(0-3)
  0000  SELF      R2 = R0[K0('_DispatchMainWindowClosedEvent')] (self)
  0001  CALL      R1 = call(R1, 0 args, 1 rets)
  0002  RETURN    return R0..R-1
; ---------- proto56 [OnMainWindowAnimationEnd] ----------
  ; fn ?  line 649-651 np=1 va=0 ms=3 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='_DispatchMainWindowAnimationEndEvent'
  ;   locals: self(0-3)
  0000  SELF      R2 = R0[K0('_DispatchMainWindowAnimationEndEvent')] (self)
  0001  CALL      R1 = call(R1, 0 args, 1 rets)
  0002  RETURN    return R0..R-1
; ---------- proto57 [OnHelpWindowClosed] ----------
  ; fn ?  line 654-656 np=1 va=0 ms=3 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='_DispatchHelpWindowClosedEvent'
  ;   locals: self(0-3)
  0000  SELF      R2 = R0[K0('_DispatchHelpWindowClosedEvent')] (self)
  0001  CALL      R1 = call(R1, 0 args, 1 rets)
  0002  RETURN    return R0..R-1
; ---------- proto58 [_IsEntryVisible] ----------
  ; fn ?  line 662-664 np=1 va=0 ms=3 code=22 consts=6 upvals=1 protos=0
  ;   K[0]='GetState'
  ;   K[1]='ActivityState'
  ;   K[2]='Started'
  ;   K[3]='IsActivityOpen'
  ;   K[4]='IsInRace'
  ;   K[5]='IsDeadline'
  ;   upvals: _ENV
  ;   locals: self(0-22)
  0000  SELF      R2 = R0[K0('GetState')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  GETTABUP  R2 = _ENV[K1('ActivityState')]
  0003  GETTABLE  R2 = R2[K2('Started')]
  0004  EQ        if R0 eq R2   -> -130552
  0005  JMP       (jump)   -> 18
  0006  SELF      R2 = R0[K3('IsActivityOpen')] (self)
  0007  CALL      R1 = call(R1, 1 args, 1 rets)
  0008  TEST      if not R1 then   -> -131062
  0009  JMP       (jump)   -> 20
  0010  SELF      R2 = R0[K4('IsInRace')] (self)
  0011  CALL      R1 = call(R1, 1 args, 1 rets)
  0012  TEST      if not R1 then   -> -131057
  0013  JMP       (jump)   -> 20
  0014  SELF      R2 = R0[K5('IsDeadline')] (self)
  0015  CALL      R1 = call(R1, 1 args, 1 rets)
  0016  NOT       R1 = not R0
  0017  JMP       (jump)   -> 20
  0018  LOADBOOL  R1 = false
  0019  LOADBOOL  R1 = true
  0020  RETURN    return R1..R0
  0021  RETURN    return R0..R-1
; ---------- proto59 [GetMapEntryShowConfig] ----------
  ; fn ?  line 667-677 np=1 va=0 ms=4 code=20 consts=11 upvals=1 protos=1
  ;   K[0]='statusChangeEvent'
  ;   K[1]='GetActivityDefinition'
  ;   K[2]='StateChangedEvent'
  ;   K[3]='eEntryRootKey'
  ;   K[4]='EEntryRootKey'
  ;   K[5]='UpgradeRace'
  ;   K[6]='entryPrefabName'
  ;   K[7]='MainEntryPrefabName'
  ;   K[8]='hudKey'
  ;   K[9]='EntryButtonKey'
  ;   K[10]='checkFun'
  ;   upvals: _ENV
  ;   locals: self(0-20)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  SELF      R3 = R0[K1('GetActivityDefinition')] (self)
  0002  CALL      R2 = call(R2, 1 args, 1 rets)
  0003  GETTABLE  R2 = R2[K2('StateChangedEvent')]
  0004  SETTABLE  R1[K0('statusChangeEvent')] = R2
  0005  GETTABUP  R2 = _ENV[K4('EEntryRootKey')]
  0006  GETTABLE  R2 = R2[K5('UpgradeRace')]
  0007  SETTABLE  R1[K3('eEntryRootKey')] = R2
  0008  SELF      R3 = R0[K1('GetActivityDefinition')] (self)
  0009  CALL      R2 = call(R2, 1 args, 1 rets)
  0010  GETTABLE  R2 = R2[K7('MainEntryPrefabName')]
  0011  SETTABLE  R1[K6('entryPrefabName')] = R2
  0012  SELF      R3 = R0[K1('GetActivityDefinition')] (self)
  0013  CALL      R2 = call(R2, 1 args, 1 rets)
  0014  GETTABLE  R2 = R2[K9('EntryButtonKey')]
  0015  SETTABLE  R1[K8('hudKey')] = R2
  0016  CLOSURE   R2 = closure proto0
  0017  SETTABLE  R1[K10('checkFun')] = R2
  0018  RETURN    return R1..R0
  0019  RETURN    return R0..R-1
  ; ---------- proto0 [checkFun] ----------
    ; fn ?  line 673-675 np=0 va=0 ms=2 code=5 consts=1 upvals=1 protos=0
    ;   K[0]='_IsEntryVisible'
    ;   upvals: self
    0000  GETUPVAL  R0 = self
    0001  SELF      R1 = R0[K0('_IsEntryVisible')] (self)
    0002  TAILCALL  tailcall(R0, 0)
    0003  RETURN    return R0..R-1
    0004  RETURN    return R0..R-1
; ---------- proto60 [GetBoardEntryShowConfig] ----------
  ; fn ?  line 680-689 np=1 va=0 ms=4 code=16 consts=9 upvals=1 protos=1
  ;   K[0]='statusChangeEvent'
  ;   K[1]='GetActivityDefinition'
  ;   K[2]='StateChangedEvent'
  ;   K[3]='eEntryRootKey'
  ;   K[4]='EEntryRootKey'
  ;   K[5]='UpgradeRace'
  ;   K[6]='entryPrefabName'
  ;   K[7]='BoardEntryPrefabName'
  ;   K[8]='checkFun'
  ;   upvals: _ENV
  ;   locals: self(0-16)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  SELF      R3 = R0[K1('GetActivityDefinition')] (self)
  0002  CALL      R2 = call(R2, 1 args, 1 rets)
  0003  GETTABLE  R2 = R2[K2('StateChangedEvent')]
  0004  SETTABLE  R1[K0('statusChangeEvent')] = R2
  0005  GETTABUP  R2 = _ENV[K4('EEntryRootKey')]
  0006  GETTABLE  R2 = R2[K5('UpgradeRace')]
  0007  SETTABLE  R1[K3('eEntryRootKey')] = R2
  0008  SELF      R3 = R0[K1('GetActivityDefinition')] (self)
  0009  CALL      R2 = call(R2, 1 args, 1 rets)
  0010  GETTABLE  R2 = R2[K7('BoardEntryPrefabName')]
  0011  SETTABLE  R1[K6('entryPrefabName')] = R2
  0012  CLOSURE   R2 = closure proto0
  0013  SETTABLE  R1[K8('checkFun')] = R2
  0014  RETURN    return R1..R0
  0015  RETURN    return R0..R-1
  ; ---------- proto0 [checkFun] ----------
    ; fn ?  line 685-687 np=0 va=0 ms=2 code=5 consts=1 upvals=1 protos=0
    ;   K[0]='_IsEntryVisible'
    ;   upvals: self
    0000  GETUPVAL  R0 = self
    0001  SELF      R1 = R0[K0('_IsEntryVisible')] (self)
    0002  TAILCALL  tailcall(R0, 0)
    0003  RETURN    return R0..R-1
    0004  RETURN    return R0..R-1
; ---------- proto61 [ShouldShowRedPoint] ----------
  ; fn ?  line 692-694 np=1 va=0 ms=2 code=3 consts=0 upvals=0 protos=0
  ;   locals: self(0-3)
  0000  LOADBOOL  R1 = false
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto62 [OnEntryClicked] ----------
  ; fn ?  line 697-706 np=1 va=0 ms=4 code=16 consts=5 upvals=0 protos=0
  ;   K[0]='GetState'
  ;   K[1]='IsInRace'
  ;   K[2]='NeedPopFailWindow'
  ;   K[3]='TryOpenMainWindow'
  ;   K[4]='OpenCurrentRoundEntryWindow'
  ;   locals: self(0-16), state(2-16)
  0000  SELF      R2 = R0[K0('GetState')] (self)
  0001  CALL      R1 = call(R1, 1 args, 1 rets)
  0002  SELF      R3 = R0[K1('IsInRace')] (self)
  0003  CALL      R2 = call(R2, 1 args, 1 rets)
  0004  TEST      if not R2 then   -> -131065
  0005  JMP       (jump)   -> 10
  0006  SELF      R3 = R0[K2('NeedPopFailWindow')] (self)
  0007  CALL      R2 = call(R2, 1 args, 1 rets)
  0008  TEST      if not R2 then   -> -131062
  0009  JMP       (jump)   -> 13
  0010  SELF      R3 = R0[K3('TryOpenMainWindow')] (self)
  0011  CALL      R2 = call(R2, 0 args, 1 rets)
  0012  JMP       (jump)   -> 15
  0013  SELF      R3 = R0[K4('OpenCurrentRoundEntryWindow')] (self)
  0014  CALL      R2 = call(R2, 0 args, 1 rets)
  0015  RETURN    return R0..R-1
; ---------- proto63 [_LogActivityEnd] ----------
  ; fn ?  line 712-719 np=2 va=0 ms=9 code=57 consts=19 upvals=1 protos=0
  ;   K[0]='table'
  ;   K[1]='insert'
  ;   K[2]='round:'
  ;   K[3]='tostring'
  ;   K[4]='GetCurrentRound'
  ;   K[5]='rank:'
  ;   K[6]='GetMyRank'
  ;   K[7]='success:'
  ;   K[8]=1
  ;   K[9]=0
  ;   K[10]='score:'
  ;   K[11]='GetMyScore'
  ;   K[12]='GM'
  ;   K[13]='BIManager'
  ;   K[14]='LogAction'
  ;   K[15]='EBIType'
  ;   K[16]='UpgradeRaceEnd'
  ;   K[17]='concat'
  ;   K[18]=';'
  ;   upvals: _ENV
  ;   locals: self(0-57), bSuccess(0-57), strAction(1-57)
  0000  NEWTABLE  R2 = {} (0 items)
  0001  GETTABUP  R3 = _ENV[K0('table')]
  0002  GETTABLE  R3 = R3[K1('insert')]
  0003  MOVE      R4 = R0
  0004  LOADK     R5 = K2 'round:'
  0005  GETTABUP  R6 = _ENV[K3('tostring')]
  0006  SELF      R8 = R0[K4('GetCurrentRound')] (self)
  0007  CALL      R7 = call(R7, -1 args, 1 rets)
  0008  CALL      R6 = call(R6, 1 args, -1 rets)
  0009  CONCAT    R5 = concat(R5..R5)
  0010  CALL      R3 = call(R3, 0 args, 2 rets)
  0011  GETTABUP  R3 = _ENV[K0('table')]
  0012  GETTABLE  R3 = R3[K1('insert')]
  0013  MOVE      R4 = R0
  0014  LOADK     R5 = K5 'rank:'
  0015  GETTABUP  R6 = _ENV[K3('tostring')]
  0016  SELF      R8 = R0[K6('GetMyRank')] (self)
  0017  CALL      R7 = call(R7, -1 args, 1 rets)
  0018  CALL      R6 = call(R6, 1 args, -1 rets)
  0019  CONCAT    R5 = concat(R5..R5)
  0020  CALL      R3 = call(R3, 0 args, 2 rets)
  0021  GETTABUP  R3 = _ENV[K0('table')]
  0022  GETTABLE  R3 = R3[K1('insert')]
  0023  MOVE      R4 = R0
  0024  LOADK     R5 = K7 'success:'
  0025  GETTABUP  R6 = _ENV[K3('tostring')]
  0026  TEST      if not R1 then   -> -131044
  0027  JMP       (jump)   -> 31
  0028  LOADK     R7 = K8 1
  0029  TEST      if not R7 then   -> -131040
  0030  JMP       (jump)   -> 32
  0031  LOADK     R7 = K9 0
  0032  CALL      R6 = call(R6, 1 args, 1 rets)
  0033  CONCAT    R5 = concat(R5..R5)
  0034  CALL      R3 = call(R3, 0 args, 2 rets)
  0035  GETTABUP  R3 = _ENV[K0('table')]
  0036  GETTABLE  R3 = R3[K1('insert')]
  0037  MOVE      R4 = R0
  0038  LOADK     R5 = K10 'score:'
  0039  GETTABUP  R6 = _ENV[K3('tostring')]
  0040  SELF      R8 = R0[K11('GetMyScore')] (self)
  0041  CALL      R7 = call(R7, -1 args, 1 rets)
  0042  CALL      R6 = call(R6, 1 args, -1 rets)
  0043  CONCAT    R5 = concat(R5..R5)
  0044  CALL      R3 = call(R3, 0 args, 2 rets)
  0045  GETTABUP  R3 = _ENV[K12('GM')]
  0046  GETTABLE  R3 = R3[K13('BIManager')]
  0047  SELF      R4 = R3[K14('LogAction')] (self)
  0048  GETTABUP  R5 = _ENV[K15('EBIType')]
  0049  GETTABLE  R5 = R5[K16('UpgradeRaceEnd')]
  0050  GETTABUP  R6 = _ENV[K0('table')]
  0051  GETTABLE  R6 = R6[K17('concat')]
  0052  MOVE      R7 = R0
  0053  LOADK     R8 = K18 ';'
  0054  CALL      R6 = call(R6, -1 args, 2 rets)
  0055  CALL      R3 = call(R3, 0 args, -1 rets)
  0056  RETURN    return R0..R-1
; ---------- proto64 [_LogRaceCompletedBI] ----------
  ; fn ?  line 722-726 np=1 va=0 ms=4 code=4 consts=1 upvals=0 protos=0
  ;   K[0]='_LogActivityEnd'
  ;   locals: self(0-4)
  0000  SELF      R2 = R0[K0('_LogActivityEnd')] (self)
  0001  LOADBOOL  R3 = true
  0002  CALL      R1 = call(R1, 0 args, 2 rets)
  0003  RETURN    return R0..R-1
; ---------- proto65 [TestFinishRoundSmall] ----------
  ; fn ?  line 733-743 np=1 va=0 ms=3 code=21 consts=9 upvals=1 protos=0
  ;   K[0]='GameConfig'
  ;   K[1]='IsTestMode'
  ;   K[2]='_SetReceiveReward'
  ;   K[3]='UpdateScoreProgress'
  ;   K[4]='EventDispatcher'
  ;   K[5]='DispatchEvent'
  ;   K[6]='EEventType'
  ;   K[7]='RewardValidChanged'
  ;   K[8]='ActivityRaceCompleted'
  ;   upvals: _ENV
  ;   locals: self(0-21)
  0000  GETTABUP  R1 = _ENV[K0('GameConfig')]
  0001  GETTABLE  R1 = R1[K1('IsTestMode')]
  0002  CALL      R1 = call(R1, 1 args, 0 rets)
  0003  TEST      if not R1 then   -> -131066
  0004  JMP       (jump)   -> 6
  0005  RETURN    return R0..R-1
  0006  SELF      R2 = R0[K2('_SetReceiveReward')] (self)
  0007  CALL      R1 = call(R1, 0 args, 1 rets)
  0008  SELF      R2 = R0[K3('UpdateScoreProgress')] (self)
  0009  CALL      R1 = call(R1, 0 args, 1 rets)
  0010  GETTABUP  R1 = _ENV[K4('EventDispatcher')]
  0011  GETTABLE  R1 = R1[K5('DispatchEvent')]
  0012  GETTABUP  R2 = _ENV[K6('EEventType')]
  0013  GETTABLE  R2 = R2[K7('RewardValidChanged')]
  0014  CALL      R1 = call(R1, 0 args, 1 rets)
  0015  GETTABUP  R1 = _ENV[K4('EventDispatcher')]
  0016  GETTABLE  R1 = R1[K5('DispatchEvent')]
  0017  GETTABUP  R2 = _ENV[K6('EEventType')]
  0018  GETTABLE  R2 = R2[K8('ActivityRaceCompleted')]
  0019  CALL      R1 = call(R1, 0 args, 1 rets)
  0020  RETURN    return R0..R-1
; ---------- proto66 [TestFinishRoundLarge] ----------
  ; fn ?  line 746-756 np=1 va=0 ms=9 code=27 consts=11 upvals=2 protos=0
  ;   K[0]='GameConfig'
  ;   K[1]='IsTestMode'
  ;   K[2]='GetCurrentRound'
  ;   K[3]='GetSmallRoundCount'
  ;   K[4]='math'
  ;   K[5]='tointeger'
  ;   K[6]='ceil'
  ;   K[7]='m_dbTable'
  ;   K[8]='Set'
  ;   K[9]='round'
  ;   K[10]='TestFinishRoundSmall'
  ;   upvals: _ENV, DB_VALUE_KEY
  ;   locals: self(0-27), currentRound(8-27), smallRoundCount(10-27), targetRound(18-27)
  0000  GETTABUP  R1 = _ENV[K0('GameConfig')]
  0001  GETTABLE  R1 = R1[K1('IsTestMode')]
  0002  CALL      R1 = call(R1, 1 args, 0 rets)
  0003  TEST      if not R1 then   -> -131066
  0004  JMP       (jump)   -> 6
  0005  RETURN    return R0..R-1
  0006  SELF      R2 = R0[K2('GetCurrentRound')] (self)
  0007  CALL      R1 = call(R1, 1 args, 1 rets)
  0008  SELF      R3 = R0[K3('GetSmallRoundCount')] (self)
  0009  CALL      R2 = call(R2, 1 args, 1 rets)
  0010  GETTABUP  R3 = _ENV[K4('math')]
  0011  GETTABLE  R3 = R3[K5('tointeger')]
  0012  GETTABUP  R4 = _ENV[K4('math')]
  0013  GETTABLE  R4 = R4[K6('ceil')]
  0014  DIV       R5 = R2 div R1
  0015  CALL      R4 = call(R4, -1 args, 1 rets)
  0016  CALL      R3 = call(R3, 1 args, -1 rets)
  0017  MUL       R3 = R2 mul R3
  0018  GETTABLE  R4 = R0[K7('m_dbTable')]
  0019  SELF      R5 = R4[K8('Set')] (self)
  0020  LOADK     R6 = K9 'round'
  0021  GETUPVAL  R7 = _ENV
  0022  MOVE      R8 = R0
  0023  CALL      R4 = call(R4, 0 args, 4 rets)
  0024  SELF      R5 = R0[K10('TestFinishRoundSmall')] (self)
  0025  CALL      R4 = call(R4, 0 args, 1 rets)
  0026  RETURN    return R0..R-1
; ---------- proto67 [TestGotoLastRound] ----------
  ; fn ?  line 759-767 np=1 va=0 ms=7 code=18 consts=8 upvals=2 protos=0
  ;   K[0]='GameConfig'
  ;   K[1]='IsTestMode'
  ;   K[2]='GetRoundCount'
  ;   K[3]=1
  ;   K[4]='m_dbTable'
  ;   K[5]='Set'
  ;   K[6]='round'
  ;   K[7]='TestFinishRoundSmall'
  ;   upvals: _ENV, DB_VALUE_KEY
  ;   locals: self(0-18), targetRound(9-18)
  0000  GETTABUP  R1 = _ENV[K0('GameConfig')]
  0001  GETTABLE  R1 = R1[K1('IsTestMode')]
  0002  CALL      R1 = call(R1, 1 args, 0 rets)
  0003  TEST      if not R1 then   -> -131066
  0004  JMP       (jump)   -> 6
  0005  RETURN    return R0..R-1
  0006  SELF      R2 = R0[K2('GetRoundCount')] (self)
  0007  CALL      R1 = call(R1, 1 args, 1 rets)
  0008  SUB       R1 = K3(1) sub R1
  0009  GETTABLE  R2 = R0[K4('m_dbTable')]
  0010  SELF      R3 = R2[K5('Set')] (self)
  0011  LOADK     R4 = K6 'round'
  0012  GETUPVAL  R5 = _ENV
  0013  MOVE      R6 = R0
  0014  CALL      R2 = call(R2, 0 args, 4 rets)
  0015  SELF      R3 = R0[K7('TestFinishRoundSmall')] (self)
  0016  CALL      R2 = call(R2, 0 args, 1 rets)
  0017  RETURN    return R0..R-1
; ---------- proto68 [TestFinishWithRobot] ----------
  ; fn ?  line 770-785 np=1 va=0 ms=10 code=32 consts=11 upvals=1 protos=0
  ;   K[0]='GameConfig'
  ;   K[1]='IsTestMode'
  ;   K[2]='GetGapTime'
  ;   K[3]='GetTargetScore'
  ;   K[4]='ipairs'
  ;   K[5]='m_arrPlayerData'
  ;   K[6]='IsMySelf'
  ;   K[7]='score'
  ;   K[8]='seconds'
  ;   K[9]='_AddMyScore'
  ;   K[10]='GetMyScore'
  ;   upvals: _ENV
  ;   locals: self(0-32), gapTime(8-32), targetScore(10-32), (for generator)(13-26), (for state)(13-26), (for control)(13-26), _(14-24), playerData(14-24)
  0000  GETTABUP  R1 = _ENV[K0('GameConfig')]
  0001  GETTABLE  R1 = R1[K1('IsTestMode')]
  0002  CALL      R1 = call(R1, 1 args, 0 rets)
  0003  TEST      if not R1 then   -> -131066
  0004  JMP       (jump)   -> 6
  0005  RETURN    return R0..R-1
  0006  SELF      R2 = R0[K2('GetGapTime')] (self)
  0007  CALL      R1 = call(R1, 1 args, 1 rets)
  0008  SELF      R3 = R0[K3('GetTargetScore')] (self)
  0009  CALL      R2 = call(R2, 1 args, 1 rets)
  0010  GETTABUP  R3 = _ENV[K4('ipairs')]
  0011  GETTABLE  R4 = R0[K5('m_arrPlayerData')]
  0012  CALL      R3 = call(R3, 3 args, 1 rets)
  0013  JMP       (jump)   -> 24
  0014  SELF      R9 = R7[K6('IsMySelf')] (self)
  0015  CALL      R8 = call(R8, 1 args, 1 rets)
  0016  TEST      if not R8 then   -> -131053
  0017  JMP       (jump)   -> 24
  0018  NEWTABLE  R8 = {} (1 items)
  0019  NEWTABLE  R9 = {} (0 items)
  0020  SETTABLE  R9[K8('seconds')] = R1
  0021  SETTABLE  R9[K7('score')] = R2
  0022  SETLIST   setlist R8[B=1,C=1]
  0023  SETTABLE  R7[K7('score')] = R8
  0024  TFORCALL  tforcall R3
  0025  TFORLOOP  tforloop R5(sBx=-12)   -> 14
  0026  SELF      R4 = R0[K9('_AddMyScore')] (self)
  0027  SELF      R6 = R0[K10('GetMyScore')] (self)
  0028  CALL      R5 = call(R5, 1 args, 1 rets)
  0029  SUB       R5 = R5 sub R2
  0030  CALL      R3 = call(R3, 0 args, 2 rets)
  0031  RETURN    return R0..R-1
