# compiler: R8
# compiler_version: 8.10.24
# common_typos_disable
# {"id":"com.android.tools.r8.mapping","version":"2.2"}
# pg_map_id: 29d20c0
# pg_map_hash: SHA-256 29d20c0db34d5cfd6931eab09bcbcc89f83ab26b8882a0685ff6e68f30181d5a
cn.thinkingdata.module.routes.RemoteConfigModuleRouter -> cn.thinkingdata.module.routes.RemoteConfigModuleRouter:
# {"id":"sourceFile","fileName":"RemoteConfigModuleRouter.java"}
    1:1:void <init>():7:7 -> <init>
    1:2:java.util.Map getRouterMap():9:10 -> getRouterMap
cn.thinkingdata.remoteconfig.BuildConfig -> cn.thinkingdata.remoteconfig.BuildConfig:
# {"id":"sourceFile","fileName":"BuildConfig.java"}
    1:1:void <init>():6:6 -> <init>
cn.thinkingdata.remoteconfig.TDRemoteConfig -> cn.thinkingdata.remoteconfig.TDRemoteConfig:
# {"id":"sourceFile","fileName":"TDRemoteConfig.java"}
    1:1:void <init>():26:26 -> <init>
    1:1:void accumulateNum(java.lang.String,double):163:163 -> accumulateNum
    2:2:void cn.thinkingdata.remoteconfig.task.TDClientValueManager.accumulateNum(java.lang.String,double):84:84 -> accumulateNum
    2:2:void accumulateNum(java.lang.String,double):163 -> accumulateNum
    1:1:void addClientParams(org.json.JSONObject):155:155 -> addClientParams
    2:2:void cn.thinkingdata.remoteconfig.task.TDClientValueManager.addClientParams(org.json.JSONObject):52:52 -> addClientParams
    2:2:void addClientParams(org.json.JSONObject):155 -> addClientParams
    1:3:void addConfigFetchListener(cn.thinkingdata.remoteconfig.TDRemoteConfig$OnConfigFetchListener):141:143 -> addConfigFetchListener
    4:4:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.addConfigFetchListener(cn.thinkingdata.remoteconfig.TDRemoteConfig$OnConfigFetchListener,java.lang.String):274:274 -> addConfigFetchListener
    4:4:void addConfigFetchListener(cn.thinkingdata.remoteconfig.TDRemoteConfig$OnConfigFetchListener):143 -> addConfigFetchListener
    5:5:void cn.thinkingdata.remoteconfig.core.TDTemplateSetting.addConfigFetchListener(cn.thinkingdata.remoteconfig.TDRemoteConfig$OnConfigFetchListener):227:227 -> addConfigFetchListener
    5:5:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.addConfigFetchListener(cn.thinkingdata.remoteconfig.TDRemoteConfig$OnConfigFetchListener,java.lang.String):276 -> addConfigFetchListener
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    5:5:void addConfigFetchListener(cn.thinkingdata.remoteconfig.TDRemoteConfig$OnConfigFetchListener):143 -> addConfigFetchListener
    6:8:void cn.thinkingdata.remoteconfig.core.TDTemplateSetting.addConfigFetchListener(cn.thinkingdata.remoteconfig.TDRemoteConfig$OnConfigFetchListener):227:229 -> addConfigFetchListener
    6:8:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.addConfigFetchListener(cn.thinkingdata.remoteconfig.TDRemoteConfig$OnConfigFetchListener,java.lang.String):276 -> addConfigFetchListener
    6:8:void addConfigFetchListener(cn.thinkingdata.remoteconfig.TDRemoteConfig$OnConfigFetchListener):143 -> addConfigFetchListener
    1:3:void clearDefaultValues():44:46 -> clearDefaultValues
    4:6:void clearDefaultValues(java.lang.String):50:52 -> clearDefaultValues
    1:1:void cn.thinkingdata.remoteconfig.utils.LogUtil.setEnableLog(boolean):16:16 -> enableLog
    1:1:void enableLog(boolean):29 -> enableLog
    1:1:cn.thinkingdata.remoteconfig.task.TDTask fetch():123:123 -> fetch
    2:3:cn.thinkingdata.remoteconfig.task.TDTask fetch(java.lang.String,java.lang.String):127:128 -> fetch
    1:2:java.lang.Object getClientParamValueForKey(java.lang.String):167:167 -> getClientParamValueForKey
    3:3:java.lang.Object cn.thinkingdata.remoteconfig.task.TDClientValueManager.get(java.lang.String):106:106 -> getClientParamValueForKey
    3:3:java.lang.Object getClientParamValueForKey(java.lang.String):167 -> getClientParamValueForKey
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    4:7:java.lang.Object cn.thinkingdata.remoteconfig.task.TDClientValueManager.get(java.lang.String):106:109 -> getClientParamValueForKey
    4:7:java.lang.Object getClientParamValueForKey(java.lang.String):167 -> getClientParamValueForKey
    1:1:org.json.JSONObject getClientParams():171:171 -> getClientParams
    2:2:org.json.JSONObject cn.thinkingdata.remoteconfig.task.TDClientValueManager.getAllClientParams():113:113 -> getClientParams
    2:2:org.json.JSONObject getClientParams():171 -> getClientParams
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    3:12:org.json.JSONObject cn.thinkingdata.remoteconfig.task.TDClientValueManager.getAllClientParams():113:122 -> getClientParams
    3:12:org.json.JSONObject getClientParams():171 -> getClientParams
    1:1:cn.thinkingdata.remoteconfig.core.TDObject getData():110:110 -> getData
    2:7:cn.thinkingdata.remoteconfig.core.TDObject getData(java.lang.String,java.lang.String):114:119 -> getData
    1:1:java.lang.String getSDKVersion():147:147 -> getSDKVersion
    1:4:void init(android.content.Context,java.lang.String,java.lang.String):33:36 -> init
    5:14:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.init(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):81:90 -> init
    5:14:void init(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):40 -> init
    15:15:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.initAsync(cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):102:102 -> init
    15:15:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.init(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):92 -> init
    15:15:void init(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):40 -> init
    16:16:boolean cn.thinkingdata.remoteconfig.core.TDRemoteInstance.addNewTemplateCode(cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):138:138 -> init
    16:16:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.init(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):94 -> init
    16:16:void init(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):40 -> init
    17:17:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.initAsync(cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):102:102 -> init
    17:17:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.init(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):95 -> init
    17:17:void init(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):40 -> init
    18:18:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.init(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):98:98 -> init
    18:18:void init(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):40 -> init
    19:34:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.init(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):83:98 -> init
    19:34:void init(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):40 -> init
    1:1:void removeClientParam(java.lang.String):159:159 -> removeClientParam
    2:2:void cn.thinkingdata.remoteconfig.task.TDClientValueManager.removeClientParam(java.lang.String):70:70 -> removeClientParam
    2:2:void removeClientParam(java.lang.String):159 -> removeClientParam
    1:1:void removeCustomFetchParam(java.lang.String):90:90 -> removeCustomFetchParam
    2:2:void removeCustomFetchParam(java.lang.String,java.lang.String,java.lang.String):94:94 -> removeCustomFetchParam
    3:5:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.removeCustomFetchParams(java.lang.String,java.lang.String):242:244 -> removeCustomFetchParam
    3:5:void removeCustomFetchParam(java.lang.String,java.lang.String,java.lang.String):96 -> removeCustomFetchParam
    1:1:void setCustomBucketId(java.util.Map):100:100 -> setCustomBucketId
    2:2:void setCustomBucketId(java.util.Map,java.lang.String,java.lang.String):104:104 -> setCustomBucketId
    3:3:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.setCustomBucketId(java.util.Map,java.lang.String):255:255 -> setCustomBucketId
    3:3:void setCustomBucketId(java.util.Map,java.lang.String,java.lang.String):106 -> setCustomBucketId
    1:1:void setCustomFetchParams(org.json.JSONObject):80:80 -> setCustomFetchParams
    2:2:void setCustomFetchParams(org.json.JSONObject,java.lang.String,java.lang.String):84:84 -> setCustomFetchParams
    3:5:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.setCustomParams(org.json.JSONObject,java.lang.String):230:232 -> setCustomFetchParams
    3:5:void setCustomFetchParams(org.json.JSONObject,java.lang.String,java.lang.String):86 -> setCustomFetchParams
    1:3:void setDefaultValues(java.lang.String):56:58 -> setDefaultValues
    4:6:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.applyDefaultParams(java.lang.String,java.lang.String):282:284 -> setDefaultValues
    4:6:void setDefaultValues(java.lang.String):58 -> setDefaultValues
    7:9:void setDefaultValues(java.lang.String,java.lang.String):62:64 -> setDefaultValues
    10:12:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.applyDefaultParams(java.lang.String,java.lang.String):282:284 -> setDefaultValues
    10:12:void setDefaultValues(java.lang.String,java.lang.String):64 -> setDefaultValues
    13:13:void setDefaultValues(org.json.JSONObject):68:68 -> setDefaultValues
    14:16:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.applyDefaultParams(org.json.JSONObject,java.lang.String):267:269 -> setDefaultValues
    14:16:void setDefaultValues(org.json.JSONObject):70 -> setDefaultValues
    17:17:void setDefaultValues(org.json.JSONObject,java.lang.String):74:74 -> setDefaultValues
    18:20:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.applyDefaultParams(org.json.JSONObject,java.lang.String):267:269 -> setDefaultValues
    18:20:void setDefaultValues(org.json.JSONObject,java.lang.String):76 -> setDefaultValues
cn.thinkingdata.remoteconfig.TDRemoteConfig$1 -> cn.thinkingdata.remoteconfig.a:
# {"id":"sourceFile","fileName":"TDRemoteConfig.java"}
    java.lang.String val$appId -> a
    cn.thinkingdata.remoteconfig.task.TDTaskImpl val$task -> b
    java.lang.String val$tempCode -> c
    1:1:void <init>(java.lang.String,cn.thinkingdata.remoteconfig.task.TDTaskImpl,java.lang.String):128:128 -> <init>
    1:3:void run():131:133 -> run
cn.thinkingdata.remoteconfig.TDRemoteConfig$OnConfigFetchListener -> cn.thinkingdata.remoteconfig.TDRemoteConfig$OnConfigFetchListener:
# {"id":"sourceFile","fileName":"TDRemoteConfig.java"}
cn.thinkingdata.remoteconfig.TDRemoteConfigSettings -> cn.thinkingdata.remoteconfig.TDRemoteConfigSettings:
# {"id":"sourceFile","fileName":"TDRemoteConfigSettings.java"}
    1:4:void <init>():18:21 -> <init>
    1:1:java.util.Map getCustomBucketId():37:37 -> getCustomBucketId
    1:1:org.json.JSONObject getCustomFetchParams():29:29 -> getCustomFetchParams
    1:1:cn.thinkingdata.remoteconfig.task.TDTask getFetchTask():45:45 -> getFetchTask
    1:1:void setCustomBucketId(java.util.Map):33:33 -> setCustomBucketId
    1:1:void setCustomFetchParams(org.json.JSONObject):25:25 -> setCustomFetchParams
    1:1:void setFetchTask(cn.thinkingdata.remoteconfig.task.TDTask):41:41 -> setFetchTask
cn.thinkingdata.remoteconfig.TDRemoteConfigSettings$TDRemoteConfigMode -> cn.thinkingdata.remoteconfig.TDRemoteConfigSettings$TDRemoteConfigMode:
# {"id":"sourceFile","fileName":"TDRemoteConfigSettings.java"}
    1:1:cn.thinkingdata.remoteconfig.TDRemoteConfigSettings$TDRemoteConfigMode[] $values():49:49 -> $values
    1:2:void <clinit>():50:51 -> <clinit>
    3:3:void <clinit>():49:49 -> <clinit>
    1:1:void <init>(java.lang.String,int):49:49 -> <init>
    1:1:cn.thinkingdata.remoteconfig.TDRemoteConfigSettings$TDRemoteConfigMode valueOf(java.lang.String):49:49 -> valueOf
    1:1:cn.thinkingdata.remoteconfig.TDRemoteConfigSettings$TDRemoteConfigMode[] values():49:49 -> values
cn.thinkingdata.remoteconfig.adapter.RCNetWorkReceiverAdapter -> cn.thinkingdata.remoteconfig.adapter.a:
# {"id":"sourceFile","fileName":"RCNetWorkReceiverAdapter.java"}
    1:1:void <init>():18:18 -> <init>
    1:1:void onCapabilitiesChanged(android.net.Network,android.net.NetworkCapabilities):31:31 -> onCapabilitiesChanged
    2:3:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance$6.onNetWorkChanged():322:323 -> onCapabilitiesChanged
    2:3:void onCapabilitiesChanged(android.net.Network,android.net.NetworkCapabilities):31 -> onCapabilitiesChanged
    4:4:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.tryFetch():330:330 -> onCapabilitiesChanged
    4:4:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance$6.onNetWorkChanged():323 -> onCapabilitiesChanged
    4:4:void onCapabilitiesChanged(android.net.Network,android.net.NetworkCapabilities):31 -> onCapabilitiesChanged
    1:1:void onChange():36:36 -> onChange
    2:3:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance$6.onNetWorkChanged():322:323 -> onChange
    2:3:void onChange():36 -> onChange
    4:4:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.tryFetch():330:330 -> onChange
    4:4:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance$6.onNetWorkChanged():323 -> onChange
    4:4:void onChange():36 -> onChange
cn.thinkingdata.remoteconfig.core.TDAppSetting -> cn.thinkingdata.remoteconfig.core.b:
# {"id":"sourceFile","fileName":"TDAppSetting.java"}
    cn.thinkingdata.remoteconfig.sp.AppStoragePlugin mAppStoragePlugin -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/sp/a;"}
    java.util.Map templateConfigSettings -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/HashMap;"}
    java.lang.String appId -> c
    android.content.Context mContext -> d
    java.lang.String currentClientUserId -> e
    boolean hasInitApp -> f
    1:1:void <init>(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):46:46 -> <init>
    2:11:void <init>(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):40:49 -> <init>
    1:6:boolean addTemplateCode(cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):112:117 -> a
    7:13:cn.thinkingdata.remoteconfig.core.TDTemplateSetting getTemplateSetting(java.lang.String):121:127 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/String;)Lcn/thinkingdata/remoteconfig/core/o;"}
    14:27:void updateAppConfigs(cn.thinkingdata.remoteconfig.model.TDNetModel):165:178 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/model/a;)V"}
    1:3:void initAppInfoAsync(java.lang.String):53:55 -> b
    4:8:java.lang.String getAccountId():149:153 -> b
    4:8:void initAppInfoAsync(java.lang.String):55 -> b
    9:13:java.lang.String getDistinctId():157:161 -> b
    9:13:void initAppInfoAsync(java.lang.String):55 -> b
    14:18:void initAppInfoAsync(java.lang.String):55:59 -> b
    19:21:void clearUserId():198:200 -> b
    19:21:void initAppInfoAsync(java.lang.String):60 -> b
    22:31:void initAppInfoAsync(java.lang.String):61:70 -> b
    32:32:java.lang.String cn.thinkingdata.remoteconfig.utils.RemoteConfigUtil.MD5(java.lang.String):201:201 -> b
    32:32:void initAppInfoAsync(java.lang.String):70 -> b
    33:41:void initAppInfoAsync(java.lang.String):70:78 -> b
    42:54:void cn.thinkingdata.remoteconfig.user.ClientUserIdDataBaseHelper.deleteAccountByLimit():144:156 -> b
    42:54:void initAppInfoAsync(java.lang.String):78 -> b
    55:59:void initAppInfoAsync(java.lang.String):79:83 -> b
cn.thinkingdata.remoteconfig.core.TDAppSetting$1 -> cn.thinkingdata.remoteconfig.core.a:
# {"id":"sourceFile","fileName":"TDAppSetting.java"}
    cn.thinkingdata.remoteconfig.core.TDAppSetting this$0 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/core/b;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.core.TDAppSetting):91:91 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/core/b;)V"}
    1:5:void run():95:99 -> run
    6:6:java.lang.String cn.thinkingdata.remoteconfig.utils.RemoteConfigUtil.MD5(java.lang.String):201:201 -> run
    6:6:void run():99 -> run
    7:7:void run():99:99 -> run
cn.thinkingdata.remoteconfig.core.TDObject -> cn.thinkingdata.remoteconfig.core.TDObject:
# {"id":"sourceFile","fileName":"TDObject.java"}
    1:5:void <init>(android.util.Pair):26:30 -> <init>
    6:9:void <init>(java.lang.Object):34:37 -> <init>
    1:4:org.json.JSONArray arrayValue():195:198 -> arrayValue
    1:14:cn.thinkingdata.remoteconfig.core.TDObject arrayWithFilter(cn.thinkingdata.remoteconfig.core.TDObject$IFilter):111:124 -> arrayWithFilter
    1:4:java.lang.Boolean booleanValue():170:173 -> booleanValue
    1:4:java.lang.String configValue():206:209 -> configValue
    1:8:java.lang.Double doubleValue():154:161 -> doubleValue
    1:11:cn.thinkingdata.remoteconfig.core.TDObject get(java.lang.String,java.lang.Object):41:51 -> get
    12:12:cn.thinkingdata.remoteconfig.core.TDObject get(java.lang.String):85:85 -> get
    13:25:cn.thinkingdata.remoteconfig.core.TDObject get(int,java.lang.Object):89:101 -> get
    26:26:cn.thinkingdata.remoteconfig.core.TDObject get(int):107:107 -> get
    1:15:java.lang.Object getDefaultValue():57:71 -> getDefaultValue
    1:6:java.lang.Long longValue():140:145 -> longValue
    1:4:org.json.JSONObject objectValue():183:186 -> objectValue
    1:5:java.lang.String stringValue():130:134 -> stringValue
cn.thinkingdata.remoteconfig.core.TDObject$IFilter -> cn.thinkingdata.remoteconfig.core.TDObject$IFilter:
# {"id":"sourceFile","fileName":"TDObject.java"}
cn.thinkingdata.remoteconfig.core.TDRemoteConfigSettingsParent -> cn.thinkingdata.remoteconfig.core.c:
# {"id":"sourceFile","fileName":"TDRemoteConfigSettingsParent.java"}
    1:1:void <init>():16:16 -> <init>
cn.thinkingdata.remoteconfig.core.TDRemoteInstance -> cn.thinkingdata.remoteconfig.core.m:
# {"id":"sourceFile","fileName":"TDRemoteInstance.java"}
    boolean isRegisterNetWorkReceiver -> a
    android.content.Context mContext -> b
    cn.thinkingdata.remoteconfig.core.TDAppSetting mAppSetting -> c
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/core/b;"}
    java.util.List tempNetStatusList -> d
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/ArrayList;"}
    java.util.Map sInstances -> e
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/HashMap;"}
    java.lang.String defaultAppId -> f
    1:18:void <clinit>():51:68 -> <clinit>
    1:1:void <init>(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):61:61 -> <init>
    2:12:void <init>(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):54:64 -> <init>
    1:1:void fetchWithTempCode(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,boolean):128:128 -> a
    2:2:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getAppId():137:137 -> a
    2:2:void fetchWithTempCode(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,boolean):128 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    3:4:void fetchWithTempCode(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,boolean):128:129 -> a
    5:5:void notifyTaskError(cn.thinkingdata.remoteconfig.task.TDTask,int,java.lang.String):217:217 -> a
    5:5:void fetchWithTempCode(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,boolean):129 -> a
    6:6:void fetchWithTempCode(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,boolean):132:132 -> a
    7:11:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getAccountId():149:153 -> a
    7:11:void fetchWithTempCode(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,boolean):132 -> a
    12:12:void fetchWithTempCode(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,boolean):132:132 -> a
    13:17:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getDistinctId():157:161 -> a
    13:17:void fetchWithTempCode(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,boolean):132 -> a
    18:18:java.lang.String getClientUserId():226:226 -> a
    18:18:void fetchWithTempCode(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,boolean):132 -> a
    19:19:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getClientUserId():108:108 -> a
    19:19:java.lang.String getClientUserId():226 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    19:19:void fetchWithTempCode(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,boolean):132 -> a
    20:25:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getUserId():184:189 -> a
    20:25:void fetchWithTempCode(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,boolean):132 -> a
    26:28:void cn.thinkingdata.remoteconfig.core.TDAppSetting.clearUserId():198:200 -> a
    26:28:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getUserId():190 -> a
    26:28:void fetchWithTempCode(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,boolean):132 -> a
    29:32:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getUserId():191:194 -> a
    29:32:void fetchWithTempCode(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,boolean):132 -> a
    33:34:void fetchWithTempCode(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,boolean):132:133 -> a
    35:35:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getAppId():137:137 -> a
    35:35:void fetchWithTempCode(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,boolean):133 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    36:37:void fetchWithTempCode(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,boolean):133:134 -> a
    38:38:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):150:150 -> a
    39:39:boolean cn.thinkingdata.remoteconfig.core.TDTemplateSetting.isDebug():83:83 -> a
    39:39:void cn.thinkingdata.remoteconfig.core.TDTemplateSetting.addRequestCount():387 -> a
    39:39:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):155 -> a
    40:40:void cn.thinkingdata.remoteconfig.core.TDTemplateSetting.addRequestCount():388:388 -> a
    40:40:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):155 -> a
    41:42:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):156:157 -> a
    43:43:void notifyTaskError(cn.thinkingdata.remoteconfig.task.TDTask,int,java.lang.String):217:217 -> a
    43:43:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):157 -> a
    44:50:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):161:167 -> a
    51:51:java.lang.String cn.thinkingdata.remoteconfig.utils.RemoteConfigUtil.calculateSHA256(java.lang.String,java.lang.String):40:40 -> a
    51:51:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):167 -> a
    52:52:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):168:168 -> a
    53:53:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getAppId():137:137 -> a
    53:53:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):168 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    54:55:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):168:169 -> a
    56:56:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getServerUrl(java.lang.String):141:141 -> a
    56:56:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):170 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    57:57:java.lang.String cn.thinkingdata.remoteconfig.core.TDTemplateSetting.getServerUrl():99:99 -> a
    57:57:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getServerUrl(java.lang.String):143 -> a
    57:57:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):170 -> a
    58:58:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getServerUrl(java.lang.String):145:145 -> a
    58:58:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):170 -> a
    59:63:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):170:174 -> a
    64:67:java.lang.String cn.thinkingdata.remoteconfig.core.TDTemplateSetting.getTempCode():76:79 -> a
    64:67:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):175 -> a
    68:69:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):175:176 -> a
    70:70:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getAppId():137:137 -> a
    70:70:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):177 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    71:74:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):177:180 -> a
    75:75:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getAppId():137:137 -> a
    75:75:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):180 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    76:80:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):180:184 -> a
    81:81:void notifyTaskSuccess(cn.thinkingdata.remoteconfig.task.TDTask):222:222 -> a
    81:81:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):185 -> a
    82:83:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):187:188 -> a
    84:84:void notifyTaskError(cn.thinkingdata.remoteconfig.task.TDTask,int,java.lang.String):217:217 -> a
    84:84:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):188 -> a
    85:88:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):189:192 -> a
    89:89:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getAppId():137:137 -> a
    89:89:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):192 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    90:90:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):192:192 -> a
    91:93:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.removeSystemErrorTask(java.lang.String,java.lang.String):144:146 -> a
    91:93:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):192 -> a
    94:104:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):196:206 -> a
    105:105:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getAppId():137:137 -> a
    105:105:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):206 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    106:106:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):206:206 -> a
    107:109:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.removeSystemErrorTask(java.lang.String,java.lang.String):144:146 -> a
    107:109:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):206 -> a
    110:110:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):202:202 -> a
    111:112:void cn.thinkingdata.remoteconfig.utils.LogUtil.e(java.lang.String,java.lang.Throwable):62:63 -> a
    111:112:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):210 -> a
    113:113:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):211:211 -> a
    114:114:void notifyTaskError(cn.thinkingdata.remoteconfig.task.TDTask,int,java.lang.String):217:217 -> a
    114:114:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):211 -> a
    115:115:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):152:152 -> a
    116:116:void notifyTaskError(cn.thinkingdata.remoteconfig.task.TDTask,int,java.lang.String):217:217 -> a
    116:116:void fetchSync(cn.thinkingdata.remoteconfig.task.TDTask,java.lang.String,int,org.json.JSONObject,boolean):152 -> a
    117:117:void clearDefaultParams(java.lang.String):302:302 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"()V"}
    118:118:void cn.thinkingdata.remoteconfig.core.TDTemplateSetting.clearDefaultParams():249:249 -> a
    118:118:void clearDefaultParams(java.lang.String):304 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    120:126:void cn.thinkingdata.remoteconfig.core.TDTemplateSetting.clearDefaultParams():251:257 -> a
    120:126:void clearDefaultParams(java.lang.String):304 -> a
    127:127:void cn.thinkingdata.remoteconfig.core.TDAppSetting.updateLastModifyFile():91:91 -> a
    127:127:void cn.thinkingdata.remoteconfig.core.TDTemplateSetting.clearDefaultParams():257 -> a
    127:127:void clearDefaultParams(java.lang.String):304 -> a
    128:128:void cn.thinkingdata.remoteconfig.core.TDTemplateSetting.clearDefaultParams():256:256 -> a
    128:128:void clearDefaultParams(java.lang.String):304 -> a
    129:129:android.util.Pair getAll(java.lang.String):309:309 -> a
    130:130:android.util.Pair cn.thinkingdata.remoteconfig.core.TDTemplateSetting.getAll():341:341 -> a
    130:130:android.util.Pair getAll(java.lang.String):311 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    131:136:android.util.Pair cn.thinkingdata.remoteconfig.core.TDTemplateSetting.getAll():342:347 -> a
    131:136:android.util.Pair getAll(java.lang.String):311 -> a
    137:137:boolean cn.thinkingdata.remoteconfig.core.TDTemplateSetting.isStrategyNoExpired():359:359 -> a
    137:137:android.util.Pair cn.thinkingdata.remoteconfig.core.TDTemplateSetting.getAll():348 -> a
    137:137:android.util.Pair getAll(java.lang.String):311 -> a
    138:142:boolean cn.thinkingdata.remoteconfig.core.TDTemplateSetting.isExpired():366:370 -> a
    138:142:boolean cn.thinkingdata.remoteconfig.core.TDTemplateSetting.isStrategyNoExpired():362 -> a
    138:142:android.util.Pair cn.thinkingdata.remoteconfig.core.TDTemplateSetting.getAll():348 -> a
    138:142:android.util.Pair getAll(java.lang.String):311 -> a
    143:146:android.util.Pair cn.thinkingdata.remoteconfig.core.TDTemplateSetting.getAll():349:352 -> a
    143:146:android.util.Pair getAll(java.lang.String):311 -> a
    147:147:android.util.Pair getAll(java.lang.String):313:313 -> a
    1:6:cn.thinkingdata.remoteconfig.core.TDRemoteInstance getInstance(java.lang.String):72:77 -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/String;)Lcn/thinkingdata/remoteconfig/core/m;"}
cn.thinkingdata.remoteconfig.core.TDRemoteInstance$1 -> cn.thinkingdata.remoteconfig.core.d:
# {"id":"sourceFile","fileName":"TDRemoteInstance.java"}
    cn.thinkingdata.remoteconfig.TDRemoteConfigSettings val$configSettings -> a
    cn.thinkingdata.remoteconfig.core.TDRemoteInstance this$0 -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/core/m;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.core.TDRemoteInstance,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):102:102 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/core/m;Lcn/thinkingdata/remoteconfig/TDRemoteConfigSettings;)V"}
    1:2:void run():105:106 -> run
    3:3:void cn.thinkingdata.remoteconfig.utils.SpUtils.init(android.content.Context):27:27 -> run
    3:3:void run():106 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    4:4:void cn.thinkingdata.remoteconfig.utils.SpUtils.init(android.content.Context):28:28 -> run
    4:4:void run():106 -> run
    5:8:void run():107:110 -> run
    9:12:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.addNewConfigs(cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):75:78 -> run
    9:12:void run():110 -> run
    13:14:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.startDebugTimerTask():94:95 -> run
    13:14:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.addNewConfigs(cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):79 -> run
    13:14:void run():110 -> run
    15:16:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.addNewConfigs(cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):81:82 -> run
    15:16:void run():110 -> run
    17:18:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.startNormalTimerTask():88:89 -> run
    17:18:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.addNewConfigs(cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):83 -> run
    17:18:void run():110 -> run
    19:19:void run():111:111 -> run
    20:20:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.registerNetWorkObserver():317:317 -> run
    20:20:void run():111 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    21:22:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.registerNetWorkObserver():318:319 -> run
    21:22:void run():111 -> run
    23:28:void run():113:118 -> run
cn.thinkingdata.remoteconfig.core.TDRemoteInstance$2 -> cn.thinkingdata.remoteconfig.core.e:
# {"id":"sourceFile","fileName":"TDRemoteInstance.java"}
    cn.thinkingdata.remoteconfig.core.TDTemplateSetting val$templateSetting -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/core/o;"}
    org.json.JSONObject val$params -> b
    1:1:void <init>(cn.thinkingdata.remoteconfig.core.TDRemoteInstance,cn.thinkingdata.remoteconfig.core.TDTemplateSetting,org.json.JSONObject):232:232 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/core/o;Lorg/json/JSONObject;)V"}
    1:1:void run():235:235 -> run
cn.thinkingdata.remoteconfig.core.TDRemoteInstance$3 -> cn.thinkingdata.remoteconfig.core.f:
# {"id":"sourceFile","fileName":"TDRemoteInstance.java"}
    cn.thinkingdata.remoteconfig.core.TDTemplateSetting val$templateSetting -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/core/o;"}
    java.lang.String val$key -> b
    1:1:void <init>(cn.thinkingdata.remoteconfig.core.TDRemoteInstance,cn.thinkingdata.remoteconfig.core.TDTemplateSetting,java.lang.String):244:244 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/core/o;Ljava/lang/String;)V"}
    1:2:void run():247:247 -> run
    3:3:void cn.thinkingdata.remoteconfig.core.TDTemplateSetting.removeCustomParams(java.lang.String):140:140 -> run
    3:3:void run():247 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    4:4:void cn.thinkingdata.remoteconfig.core.TDTemplateSetting.removeCustomParams(java.lang.String):140:140 -> run
    4:4:void run():247 -> run
cn.thinkingdata.remoteconfig.core.TDRemoteInstance$4 -> cn.thinkingdata.remoteconfig.core.g:
# {"id":"sourceFile","fileName":"TDRemoteInstance.java"}
    java.lang.String val$tempCode -> a
    java.util.Map val$finalBucketIdMap -> b
    cn.thinkingdata.remoteconfig.core.TDRemoteInstance this$0 -> c
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/core/m;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.core.TDRemoteInstance,java.lang.String,java.util.Map):255:255 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/core/m;Ljava/lang/String;Ljava/util/Map;)V"}
    1:3:void run():258:260 -> run
cn.thinkingdata.remoteconfig.core.TDRemoteInstance$5 -> cn.thinkingdata.remoteconfig.core.h:
# {"id":"sourceFile","fileName":"TDRemoteInstance.java"}
    java.lang.String val$filePath -> a
    cn.thinkingdata.remoteconfig.core.TDTemplateSetting val$templateSetting -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/core/o;"}
    cn.thinkingdata.remoteconfig.core.TDRemoteInstance this$0 -> c
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/core/m;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.core.TDRemoteInstance,java.lang.String,cn.thinkingdata.remoteconfig.core.TDTemplateSetting):284:284 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/core/m;Ljava/lang/String;Lcn/thinkingdata/remoteconfig/core/o;)V"}
    1:2:void run():288:289 -> run
    3:14:java.lang.String cn.thinkingdata.remoteconfig.utils.JsonUtil.getJsonFromPath(java.lang.String):194:205 -> run
    3:14:void run():289 -> run
    15:17:void run():289:291 -> run
    18:32:java.lang.String cn.thinkingdata.remoteconfig.utils.JsonUtil.getJsonFromAssets(java.lang.String,android.content.Context):176:190 -> run
    18:32:void run():291 -> run
    33:36:void run():291:294 -> run
cn.thinkingdata.remoteconfig.core.TDRemoteInstance$6 -> cn.thinkingdata.remoteconfig.core.i:
# {"id":"sourceFile","fileName":"TDRemoteInstance.java"}
    cn.thinkingdata.remoteconfig.core.TDRemoteInstance this$0 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/core/m;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.core.TDRemoteInstance):319:319 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/core/m;)V"}
cn.thinkingdata.remoteconfig.core.TDRemoteInstance$7 -> cn.thinkingdata.remoteconfig.core.j:
# {"id":"sourceFile","fileName":"TDRemoteInstance.java"}
    cn.thinkingdata.remoteconfig.core.TDRemoteInstance this$0 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/core/m;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.core.TDRemoteInstance):330:330 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/core/m;)V"}
    1:3:void run():333:335 -> run
    4:4:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.fetchWithTempCode(java.lang.String,int,boolean):124:124 -> run
    4:4:void run():335 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    5:5:void run():337:337 -> run
cn.thinkingdata.remoteconfig.core.TDRemoteInstance$8 -> cn.thinkingdata.remoteconfig.core.l:
# {"id":"sourceFile","fileName":"TDRemoteInstance.java"}
    java.lang.String val$accountId -> a
    java.lang.String val$distinctId -> b
    cn.thinkingdata.remoteconfig.core.TDRemoteInstance this$0 -> c
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/core/m;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.core.TDRemoteInstance,java.lang.String,java.lang.String):344:344 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/core/m;Ljava/lang/String;Ljava/lang/String;)V"}
cn.thinkingdata.remoteconfig.core.TDRemoteInstance$8$1 -> cn.thinkingdata.remoteconfig.core.k:
# {"id":"sourceFile","fileName":"TDRemoteInstance.java"}
    java.lang.String val$clientUserId -> a
    cn.thinkingdata.remoteconfig.core.TDRemoteInstance$8 this$1 -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/core/l;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.core.TDRemoteInstance$8,java.lang.String):347:347 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/core/l;Ljava/lang/String;)V"}
    1:1:void run():350:350 -> run
    2:2:boolean cn.thinkingdata.remoteconfig.core.TDAppSetting.hasInitApp():87:87 -> run
    2:2:void run():350 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    3:3:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getAppId():137:137 -> run
    3:3:void run():351 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    4:5:void run():351:352 -> run
    6:6:void cn.thinkingdata.remoteconfig.core.TDAppSetting.clearUserId():198:198 -> run
    6:6:void run():352 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    7:8:void cn.thinkingdata.remoteconfig.core.TDAppSetting.clearUserId():199:200 -> run
    7:8:void run():352 -> run
    9:9:void run():353:353 -> run
    10:10:boolean cn.thinkingdata.remoteconfig.core.TDAppSetting.isFirstChangeAccount():204:204 -> run
    10:10:void run():353 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    11:11:boolean cn.thinkingdata.remoteconfig.core.TDAppSetting.isFirstChangeAccount():205:205 -> run
    11:11:void run():353 -> run
    12:12:void run():354:354 -> run
    13:13:boolean cn.thinkingdata.remoteconfig.core.TDAppSetting.isChangeAccount(java.lang.String,java.lang.String):209:209 -> run
    13:13:void run():354 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    14:25:boolean cn.thinkingdata.remoteconfig.core.TDAppSetting.isChangeAccount(java.lang.String,java.lang.String):210:221 -> run
    14:25:void run():354 -> run
    26:27:void run():356:357 -> run
    28:28:java.util.Map cn.thinkingdata.remoteconfig.core.TDAppSetting.getTemplateConfigSettings():131:131 -> run
    28:28:void run():357 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    29:30:java.util.Map cn.thinkingdata.remoteconfig.core.TDAppSetting.getTemplateConfigSettings():131:132 -> run
    29:30:void run():357 -> run
    31:37:void run():357:363 -> run
    38:38:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.removeDelayTemplateMessage():107:107 -> run
    38:38:void run():363 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    39:39:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.removeDelayTemplateMessage():107:107 -> run
    39:39:void run():363 -> run
    40:40:void run():364:364 -> run
    41:41:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getAppId():137:137 -> run
    41:41:void run():364 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    42:44:void run():364:366 -> run
    45:45:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getUserId():184:184 -> run
    45:45:void run():366 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    46:51:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getUserId():184:189 -> run
    46:51:void run():366 -> run
    52:54:void cn.thinkingdata.remoteconfig.core.TDAppSetting.clearUserId():198:200 -> run
    52:54:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getUserId():190 -> run
    52:54:void run():366 -> run
    55:58:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getUserId():191:194 -> run
    55:58:void run():366 -> run
    59:60:void run():366:367 -> run
    61:61:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getAppId():137:137 -> run
    61:61:void run():367 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    62:63:void run():367:368 -> run
    64:64:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.fetchSync(java.lang.String,int,org.json.JSONObject,boolean):146:146 -> run
    64:64:void run():368 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    65:65:java.util.Map cn.thinkingdata.remoteconfig.core.TDAppSetting.getTemplateConfigSettings():133:133 -> run
    65:65:void run():357 -> run
cn.thinkingdata.remoteconfig.core.TDTemplateSetting -> cn.thinkingdata.remoteconfig.core.o:
# {"id":"sourceFile","fileName":"TDTemplateSetting.java"}
    cn.thinkingdata.remoteconfig.TDRemoteConfigSettings mConfigSettings -> a
    java.lang.String serverUrl -> b
    java.lang.Object mStoragePluginObj -> c
    cn.thinkingdata.remoteconfig.sp.RemoteConfigStoragePlugin mStoragePlugin -> d
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/sp/b;"}
    java.util.Map customParams -> e
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/HashMap;"}
    java.util.Map customBucketId -> f
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/HashMap;"}
    org.json.JSONObject defaultParams -> g
    long expiration_time -> h
    java.lang.Object applyConfigsObj -> i
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lorg/json/JSONObject;"}
    org.json.JSONObject applyConfigs -> j
    java.lang.String activationStrategy -> k
    java.lang.String mConfigMd5 -> l
    int requestControlCount -> m
    long lastFetchTime -> n
    long lastFetchStamp -> o
    android.content.Context mContext -> p
    cn.thinkingdata.remoteconfig.core.TDAppSetting mAppSetting -> q
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/core/b;"}
    java.util.List mFetchListener -> r
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/ArrayList;"}
    android.os.Handler mHandler -> s
    boolean hasSendDebugEvent -> t
    1:1:void <init>(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings,cn.thinkingdata.remoteconfig.core.TDAppSetting):68:68 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Landroid/content/Context;Lcn/thinkingdata/remoteconfig/TDRemoteConfigSettings;Lcn/thinkingdata/remoteconfig/core/b;)V"}
    2:28:void <init>(android.content.Context,cn.thinkingdata.remoteconfig.TDRemoteConfigSettings,cn.thinkingdata.remoteconfig.core.TDAppSetting):46:72 -> <init>
    1:1:boolean isDebug():83:83 -> a
    1:1:void uploadDebugEvent(int):427 -> a
    2:4:void uploadDebugEvent(int):428:430 -> a
    5:18:void cn.thinkingdata.remoteconfig.utils.AnalyticUtil.trackDebugFailEvent(java.lang.String,int):38:51 -> a
    5:18:void uploadDebugEvent(int):430 -> a
    19:24:void checkTemplateStoragePluginSafe():103:108 -> a
    25:25:void checkTemplateStoragePluginSafe():108:108 -> a
    26:26:void mergeCustomParams(org.json.JSONObject):131:131 -> a
    27:32:void cn.thinkingdata.remoteconfig.utils.JsonUtil.mergeJsonToMap(org.json.JSONObject,java.util.Map):130:135 -> a
    27:32:void mergeCustomParams(org.json.JSONObject):131 -> a
    33:33:void mergeCustomParams(org.json.JSONObject):132:132 -> a
    34:35:void cn.thinkingdata.remoteconfig.utils.LogUtil.i1(java.lang.String,java.lang.Object[]):32:33 -> a
    34:35:void mergeCustomParams(org.json.JSONObject):132 -> a
    36:36:void mergeCustomParams(org.json.JSONObject):134:134 -> a
    37:41:void mergeCustomBucketId(java.util.Map):148:152 -> a
    42:46:void saveCustomBucketIdToStorage():178:182 -> a
    42:46:void mergeCustomBucketId(java.util.Map):153 -> a
    47:48:void cn.thinkingdata.remoteconfig.utils.LogUtil.i1(java.lang.String,java.lang.Object[]):32:33 -> a
    47:48:void saveCustomBucketIdToStorage():182 -> a
    47:48:void mergeCustomBucketId(java.util.Map):153 -> a
    49:49:void saveCustomBucketIdToStorage():184:184 -> a
    49:49:void mergeCustomBucketId(java.util.Map):153 -> a
    50:50:void mergeCustomBucketId(java.util.Map):154:154 -> a
    51:52:void cn.thinkingdata.remoteconfig.utils.LogUtil.i1(java.lang.String,java.lang.Object[]):32:33 -> a
    51:52:void mergeCustomBucketId(java.util.Map):154 -> a
    53:53:void updateRemoteConfigs(cn.thinkingdata.remoteconfig.model.TDNetModel):263:263 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/model/a;)V"}
    54:54:boolean isDebug():83:83 -> a
    54:54:void updateLastFetchTime():406 -> a
    54:54:void updateRemoteConfigs(cn.thinkingdata.remoteconfig.model.TDNetModel):264 -> a
    55:59:void updateLastFetchTime():407:411 -> a
    55:59:void updateRemoteConfigs(cn.thinkingdata.remoteconfig.model.TDNetModel):264 -> a
    60:82:void updateRemoteConfigs(cn.thinkingdata.remoteconfig.model.TDNetModel):265:287 -> a
    83:83:void cn.thinkingdata.remoteconfig.core.TDAppSetting.updateLastModifyFile():91:91 -> a
    83:83:void updateRemoteConfigs(cn.thinkingdata.remoteconfig.model.TDNetModel):287 -> a
    84:84:boolean isDebug():83:83 -> a
    84:84:void updateRemoteConfigs(cn.thinkingdata.remoteconfig.model.TDNetModel):290 -> a
    85:91:void updateRemoteConfigs(cn.thinkingdata.remoteconfig.model.TDNetModel):290:296 -> a
    92:105:void cn.thinkingdata.remoteconfig.utils.AnalyticUtil.trackClientDebugEvent(java.lang.String,org.json.JSONObject):58:71 -> a
    92:105:void updateRemoteConfigs(cn.thinkingdata.remoteconfig.model.TDNetModel):296 -> a
    106:122:void updateRemoteConfigs(cn.thinkingdata.remoteconfig.model.TDNetModel):297:313 -> a
    123:123:java.lang.String getClientUserId():337:337 -> a
    123:123:void updateRemoteConfigs(cn.thinkingdata.remoteconfig.model.TDNetModel):313 -> a
    124:124:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getClientUserId():108:108 -> a
    124:124:java.lang.String getClientUserId():337 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    124:124:void updateRemoteConfigs(cn.thinkingdata.remoteconfig.model.TDNetModel):313 -> a
    125:134:void updateRemoteConfigs(cn.thinkingdata.remoteconfig.model.TDNetModel):313:322 -> a
    135:135:void updateRemoteConfigs(cn.thinkingdata.remoteconfig.model.TDNetModel):312:312 -> a
    1:6:void mergeDefaultParams(org.json.JSONObject):234:239 -> b
    7:8:void cn.thinkingdata.remoteconfig.utils.LogUtil.i1(java.lang.String,java.lang.Object[]):32:33 -> b
    7:8:void mergeDefaultParams(org.json.JSONObject):239 -> b
    9:12:void mergeDefaultParams(org.json.JSONObject):240:243 -> b
    13:13:void cn.thinkingdata.remoteconfig.core.TDAppSetting.updateLastModifyFile():91:91 -> b
    13:13:void mergeDefaultParams(org.json.JSONObject):243 -> b
    14:14:void mergeDefaultParams(org.json.JSONObject):242:242 -> b
    15:20:void clearOldConfig():378:383 -> b
    21:21:void cn.thinkingdata.remoteconfig.core.TDAppSetting.updateLastModifyFile():91:91 -> b
    21:21:void clearOldConfig():383 -> b
    22:22:void clearOldConfig():380:380 -> b
    1:5:void downGradeMode():418:422 -> c
    6:6:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.debugTaskToNormal(cn.thinkingdata.remoteconfig.task.TimerTaskInfo):150:150 -> c
    6:6:void downGradeMode():422 -> c
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    7:14:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.debugTaskToNormal(cn.thinkingdata.remoteconfig.task.TimerTaskInfo):150:157 -> c
    7:14:void downGradeMode():422 -> c
    15:16:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.startNormalTimerTask():88:89 -> c
    15:16:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.debugTaskToNormal(cn.thinkingdata.remoteconfig.task.TimerTaskInfo):158 -> c
    15:16:void downGradeMode():422 -> c
    1:3:void initTemplateInfoAsync():87:89 -> d
    4:15:void loadCustomBucketIdFromStorage():159:170 -> d
    4:15:void initTemplateInfoAsync():90 -> d
    16:17:void cn.thinkingdata.remoteconfig.utils.LogUtil.i1(java.lang.String,java.lang.Object[]):32:33 -> d
    16:17:void loadCustomBucketIdFromStorage():170 -> d
    16:17:void initTemplateInfoAsync():90 -> d
    18:18:void loadCustomBucketIdFromStorage():173:173 -> d
    18:18:void initTemplateInfoAsync():90 -> d
    19:23:void initTemplateInfoAsync():91:95 -> d
    24:24:void initTemplateInfoAsync():95:95 -> d
    1:1:boolean isDebug():83:83 -> e
    1:1:boolean isRequestControl():392 -> e
    2:7:boolean isRequestControl():393:398 -> e
    8:11:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.sendFetchControlDelayTask(cn.thinkingdata.remoteconfig.task.TimerTaskInfo):100:103 -> e
    8:11:boolean isRequestControl():398 -> e
    1:25:void loadDefaultAndApplyParams():194:218 -> f
    1:4:void parseServerUrl():114:117 -> g
    5:12:void parseServerUrl():117:124 -> g
cn.thinkingdata.remoteconfig.core.TDTemplateSetting$1 -> cn.thinkingdata.remoteconfig.core.n:
# {"id":"sourceFile","fileName":"TDTemplateSetting.java"}
    org.json.JSONObject val$statusJson -> a
    cn.thinkingdata.remoteconfig.core.TDTemplateSetting this$0 -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/core/o;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.core.TDTemplateSetting,org.json.JSONObject):322:322 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/core/o;Lorg/json/JSONObject;)V"}
    1:5:void run():325:329 -> run
    6:6:void run():329:329 -> run
cn.thinkingdata.remoteconfig.listener.OnFailureListener -> cn.thinkingdata.remoteconfig.listener.OnFailureListener:
# {"id":"sourceFile","fileName":"OnFailureListener.java"}
cn.thinkingdata.remoteconfig.listener.OnSuccessListener -> cn.thinkingdata.remoteconfig.listener.OnSuccessListener:
# {"id":"sourceFile","fileName":"OnSuccessListener.java"}
cn.thinkingdata.remoteconfig.model.TDNetModel -> cn.thinkingdata.remoteconfig.model.a:
# {"id":"sourceFile","fileName":"TDNetModel.java"}
    int code -> a
    java.lang.String msg -> b
    org.json.JSONObject data -> c
    long timeStamp -> d
    1:1:void <init>():14:14 -> <init>
cn.thinkingdata.remoteconfig.plugin.RemoteConfigPlugin -> cn.thinkingdata.remoteconfig.plugin.RemoteConfigPlugin:
# {"id":"sourceFile","fileName":"RemoteConfigPlugin.java"}
    1:1:void <init>():24:24 -> <init>
    1:15:void onMethodCall(cn.thinkingdata.core.router.plugin.MethodCall):29:43 -> onMethodCall
cn.thinkingdata.remoteconfig.receiver.RemoteConfigLifecycleCallBack -> cn.thinkingdata.remoteconfig.receiver.a:
# {"id":"sourceFile","fileName":"RemoteConfigLifecycleCallBack.java"}
    java.util.List activityList -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/ArrayList;"}
    1:3:void <init>():19:21 -> <init>
    1:3:void onActivityStarted(android.app.Activity):30:32 -> onActivityStarted
    4:4:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.handlePageCycleUpdate():173:173 -> onActivityStarted
    4:4:void onActivityStarted(android.app.Activity):32 -> onActivityStarted
    5:7:void onActivityStarted(android.app.Activity):34:36 -> onActivityStarted
    1:4:void onActivityStopped(android.app.Activity):51:54 -> onActivityStopped
    5:5:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.handlePageCycleUpdate():173:173 -> onActivityStopped
    5:5:void onActivityStopped(android.app.Activity):54 -> onActivityStopped
cn.thinkingdata.remoteconfig.receiver.TDRemoteConfigObservable -> cn.thinkingdata.remoteconfig.receiver.TDRemoteConfigObservable:
# {"id":"sourceFile","fileName":"TDRemoteConfigObservable.java"}
    1:2:void <init>():22:23 -> <init>
    1:3:void addObserver(cn.thinkingdata.remoteconfig.receiver.TDRemoteStatusObserver):39:41 -> addObserver
    4:4:void addObserver(cn.thinkingdata.remoteconfig.receiver.TDRemoteStatusObserver):41:41 -> addObserver
    1:8:cn.thinkingdata.remoteconfig.receiver.TDRemoteConfigObservable getInstance():27:34 -> getInstance
    1:7:void notifyOnChangeAccount(java.lang.String,java.lang.String,java.lang.String):51:57 -> notifyOnChangeAccount
    8:8:void notifyOnChangeAccount(java.lang.String,java.lang.String,java.lang.String):57:57 -> notifyOnChangeAccount
    1:7:void notifyOnConfigApplySuccess(java.lang.String,java.lang.String,java.lang.String):71:77 -> notifyOnConfigApplySuccess
    8:8:void notifyOnConfigApplySuccess(java.lang.String,java.lang.String,java.lang.String):77:77 -> notifyOnConfigApplySuccess
    1:7:void notifyOnConfigExpired(java.lang.String,java.lang.String,java.lang.String):61:67 -> notifyOnConfigExpired
    8:8:void notifyOnConfigExpired(java.lang.String,java.lang.String,java.lang.String):67:67 -> notifyOnConfigExpired
    1:3:void removeObserver(cn.thinkingdata.remoteconfig.receiver.TDRemoteStatusObserver):45:47 -> removeObserver
    4:4:void removeObserver(cn.thinkingdata.remoteconfig.receiver.TDRemoteStatusObserver):47:47 -> removeObserver
cn.thinkingdata.remoteconfig.receiver.TDRemoteConfigObserver -> cn.thinkingdata.remoteconfig.receiver.b:
# {"id":"sourceFile","fileName":"TDRemoteConfigObserver.java"}
    1:1:void <init>():15:15 -> <init>
    1:1:void doChangeAccount(java.lang.String,java.lang.String,java.lang.String):38:38 -> a
    2:2:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.doChangeAccount(java.lang.String,java.lang.String):343:343 -> a
    2:2:void doChangeAccount(java.lang.String,java.lang.String,java.lang.String):40 -> a
    3:3:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getAppId():137:137 -> a
    3:3:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.doChangeAccount(java.lang.String,java.lang.String):343 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    3:3:void doChangeAccount(java.lang.String,java.lang.String,java.lang.String):40 -> a
    4:5:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.doChangeAccount(java.lang.String,java.lang.String):343:344 -> a
    4:5:void doChangeAccount(java.lang.String,java.lang.String,java.lang.String):40 -> a
    6:6:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getAppId():137:137 -> a
    6:6:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.doChangeAccount(java.lang.String,java.lang.String):344 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    6:6:void doChangeAccount(java.lang.String,java.lang.String,java.lang.String):40 -> a
    7:7:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.doChangeAccount(java.lang.String,java.lang.String):344:344 -> a
    7:7:void doChangeAccount(java.lang.String,java.lang.String,java.lang.String):40 -> a
    1:1:void onDistinctIdReceived(java.lang.String,java.lang.String,java.lang.String):29:29 -> onDistinctIdReceived
    1:1:void onLoginReceived(java.lang.String,java.lang.String,java.lang.String):24:24 -> onLoginReceived
    1:1:void onLogoutReceived(java.lang.String,java.lang.String):34:34 -> onLogoutReceived
cn.thinkingdata.remoteconfig.receiver.TDRemoteStatusObserver -> cn.thinkingdata.remoteconfig.receiver.TDRemoteStatusObserver:
# {"id":"sourceFile","fileName":"TDRemoteStatusObserver.java"}
cn.thinkingdata.remoteconfig.sp.AppStoragePlugin -> cn.thinkingdata.remoteconfig.sp.a:
# {"id":"sourceFile","fileName":"AppStoragePlugin.java"}
    cn.thinkingdata.remoteconfig.sp.StorageLocalUserId storageLocalUserId -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/sp/j;"}
    cn.thinkingdata.remoteconfig.sp.StorageUserIdExpiredTime storageUserIdExpiredTime -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/sp/k;"}
    cn.thinkingdata.remoteconfig.sp.StorageLastClientUserId storageFetchClientUserId -> c
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/sp/f;"}
    cn.thinkingdata.remoteconfig.sp.StorageLastAccountId storageLastAccountId -> d
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/sp/e;"}
    cn.thinkingdata.remoteconfig.sp.StorageLastModify storageLastModify -> e
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/sp/i;"}
    1:1:void <init>(android.content.Context,java.lang.String):25:25 -> <init>
    1:5:void createStorage(android.content.Context):30:34 -> createStorage
    1:9:cn.thinkingdata.core.sp.SharedPreferencesStorage getSharePreferenceStorage(int):41:49 -> getSharePreferenceStorage
    10:14:cn.thinkingdata.core.sp.SharedPreferencesStorage getSharePreferenceStorage(int):43:47 -> getSharePreferenceStorage
    15:15:cn.thinkingdata.core.sp.SharedPreferencesStorage getSharePreferenceStorage(int):45:45 -> getSharePreferenceStorage
cn.thinkingdata.remoteconfig.sp.RemoteConfigStoragePlugin -> cn.thinkingdata.remoteconfig.sp.b:
# {"id":"sourceFile","fileName":"RemoteConfigStoragePlugin.java"}
    cn.thinkingdata.remoteconfig.sp.StorageLastFetchConfig storageLastFetchConfig -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/sp/g;"}
    cn.thinkingdata.remoteconfig.sp.StorageDefaultConfig storageDefaultConfig -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/sp/d;"}
    cn.thinkingdata.remoteconfig.sp.StorageLastFetchTime storageLastFetchTime -> c
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/sp/h;"}
    cn.thinkingdata.remoteconfig.sp.StorageCustomBucketId storageCustomBucketId -> d
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/sp/c;"}
    1:1:void <init>(android.content.Context,java.lang.String,java.lang.String):25:25 -> <init>
    2:5:void loadStorage(android.content.Context,java.lang.String):30:33 -> <init>
    2:5:void <init>(android.content.Context,java.lang.String,java.lang.String):26 -> <init>
    1:1:cn.thinkingdata.core.sp.SharedPreferencesStorage getSharePreferenceStorage(int):50:50 -> getSharePreferenceStorage
    2:2:cn.thinkingdata.core.sp.SharedPreferencesStorage getSharePreferenceStorage(int):46:46 -> getSharePreferenceStorage
    3:7:cn.thinkingdata.core.sp.SharedPreferencesStorage getSharePreferenceStorage(int):44:48 -> getSharePreferenceStorage
cn.thinkingdata.remoteconfig.sp.StorageCustomBucketId -> cn.thinkingdata.remoteconfig.sp.c:
# {"id":"sourceFile","fileName":"StorageCustomBucketId.java"}
    1:1:void <init>(java.util.concurrent.Future,java.lang.String):19:19 -> <init>
    1:1:void convertEncryptData(java.lang.String):34:34 -> convertEncryptData
    1:1:void loadOldData(android.content.SharedPreferences):29:29 -> loadOldData
    1:1:void saveOldData(android.content.SharedPreferences$Editor,java.lang.Object):16:16 -> saveOldData
    2:2:void saveOldData(android.content.SharedPreferences$Editor,java.lang.String):24:24 -> saveOldData
    2:2:void saveOldData(android.content.SharedPreferences$Editor,java.lang.Object):16 -> saveOldData
cn.thinkingdata.remoteconfig.sp.StorageDefaultConfig -> cn.thinkingdata.remoteconfig.sp.d:
# {"id":"sourceFile","fileName":"StorageDefaultConfig.java"}
    1:1:void <init>(java.util.concurrent.Future,java.lang.String):20:20 -> <init>
    1:1:void convertEncryptData(java.lang.String):35:35 -> convertEncryptData
    1:1:void loadOldData(android.content.SharedPreferences):30:30 -> loadOldData
    1:1:void saveOldData(android.content.SharedPreferences$Editor,java.lang.Object):17:17 -> saveOldData
    2:2:void saveOldData(android.content.SharedPreferences$Editor,java.lang.String):25:25 -> saveOldData
    2:2:void saveOldData(android.content.SharedPreferences$Editor,java.lang.Object):17 -> saveOldData
cn.thinkingdata.remoteconfig.sp.StorageLastAccountId -> cn.thinkingdata.remoteconfig.sp.e:
# {"id":"sourceFile","fileName":"StorageLastAccountId.java"}
    1:1:void <init>(java.util.concurrent.Future):19:19 -> <init>
    1:1:void convertEncryptData(java.lang.String):34:34 -> convertEncryptData
    1:1:void loadOldData(android.content.SharedPreferences):29:29 -> loadOldData
    1:1:void saveOldData(android.content.SharedPreferences$Editor,java.lang.Object):16:16 -> saveOldData
    2:2:void saveOldData(android.content.SharedPreferences$Editor,java.lang.String):24:24 -> saveOldData
    2:2:void saveOldData(android.content.SharedPreferences$Editor,java.lang.Object):16 -> saveOldData
cn.thinkingdata.remoteconfig.sp.StorageLastClientUserId -> cn.thinkingdata.remoteconfig.sp.f:
# {"id":"sourceFile","fileName":"StorageLastClientUserId.java"}
    1:1:void <init>(java.util.concurrent.Future):18:18 -> <init>
    1:1:void convertEncryptData(java.lang.String):33:33 -> convertEncryptData
    1:1:void loadOldData(android.content.SharedPreferences):28:28 -> loadOldData
    1:1:void saveOldData(android.content.SharedPreferences$Editor,java.lang.Object):15:15 -> saveOldData
    2:2:void saveOldData(android.content.SharedPreferences$Editor,java.lang.String):23:23 -> saveOldData
    2:2:void saveOldData(android.content.SharedPreferences$Editor,java.lang.Object):15 -> saveOldData
cn.thinkingdata.remoteconfig.sp.StorageLastFetchConfig -> cn.thinkingdata.remoteconfig.sp.g:
# {"id":"sourceFile","fileName":"StorageLastFetchConfig.java"}
    1:1:void <init>(java.util.concurrent.Future,java.lang.String):20:20 -> <init>
    1:1:void convertEncryptData(java.lang.String):36:36 -> convertEncryptData
    1:1:void loadOldData(android.content.SharedPreferences):30:30 -> loadOldData
    1:1:void saveOldData(android.content.SharedPreferences$Editor,java.lang.Object):17:17 -> saveOldData
    2:2:void saveOldData(android.content.SharedPreferences$Editor,java.lang.String):25:25 -> saveOldData
    2:2:void saveOldData(android.content.SharedPreferences$Editor,java.lang.Object):17 -> saveOldData
cn.thinkingdata.remoteconfig.sp.StorageLastFetchTime -> cn.thinkingdata.remoteconfig.sp.h:
# {"id":"sourceFile","fileName":"StorageLastFetchTime.java"}
    1:1:void <init>(java.util.concurrent.Future,java.lang.String):19:19 -> <init>
    1:1:void convertEncryptData(java.lang.String):38:38 -> convertEncryptData
    1:3:void loadOldData(android.content.SharedPreferences):30:32 -> loadOldData
    1:1:void saveOldData(android.content.SharedPreferences$Editor,java.lang.Object):16:16 -> saveOldData
    2:2:void saveOldData(android.content.SharedPreferences$Editor,java.lang.Long):24:24 -> saveOldData
    2:2:void saveOldData(android.content.SharedPreferences$Editor,java.lang.Object):16 -> saveOldData
cn.thinkingdata.remoteconfig.sp.StorageLastModify -> cn.thinkingdata.remoteconfig.sp.i:
# {"id":"sourceFile","fileName":"StorageLastModify.java"}
    1:1:void <init>(java.util.concurrent.Future):19:19 -> <init>
    1:1:void convertEncryptData(java.lang.String):34:34 -> convertEncryptData
    1:1:void loadOldData(android.content.SharedPreferences):29:29 -> loadOldData
    1:1:void saveOldData(android.content.SharedPreferences$Editor,java.lang.Object):16:16 -> saveOldData
    2:2:void saveOldData(android.content.SharedPreferences$Editor,java.lang.String):24:24 -> saveOldData
    2:2:void saveOldData(android.content.SharedPreferences$Editor,java.lang.Object):16 -> saveOldData
cn.thinkingdata.remoteconfig.sp.StorageLocalUserId -> cn.thinkingdata.remoteconfig.sp.j:
# {"id":"sourceFile","fileName":"StorageLocalUserId.java"}
    1:1:void <init>(java.util.concurrent.Future):20:20 -> <init>
    1:1:void convertEncryptData(java.lang.String):35:35 -> convertEncryptData
    1:1:void loadOldData(android.content.SharedPreferences):30:30 -> loadOldData
    1:1:void saveOldData(android.content.SharedPreferences$Editor,java.lang.Object):17:17 -> saveOldData
    2:2:void saveOldData(android.content.SharedPreferences$Editor,java.lang.String):25:25 -> saveOldData
    2:2:void saveOldData(android.content.SharedPreferences$Editor,java.lang.Object):17 -> saveOldData
cn.thinkingdata.remoteconfig.sp.StorageUserIdExpiredTime -> cn.thinkingdata.remoteconfig.sp.k:
# {"id":"sourceFile","fileName":"StorageUserIdExpiredTime.java"}
    1:1:void <init>(java.util.concurrent.Future):22:22 -> <init>
    1:1:void convertEncryptData(java.lang.String):41:41 -> convertEncryptData
    1:3:void loadOldData(android.content.SharedPreferences):33:35 -> loadOldData
    1:1:void saveOldData(android.content.SharedPreferences$Editor,java.lang.Object):19:19 -> saveOldData
    2:2:void saveOldData(android.content.SharedPreferences$Editor,java.lang.Long):27:27 -> saveOldData
    2:2:void saveOldData(android.content.SharedPreferences$Editor,java.lang.Object):19 -> saveOldData
cn.thinkingdata.remoteconfig.sysconfig.SystemConfigManager -> cn.thinkingdata.remoteconfig.sysconfig.SystemConfigManager:
# {"id":"sourceFile","fileName":"SystemConfigManager.java"}
    1:1:void <init>():36:36 -> <init>
    2:3:void <init>():33:34 -> <init>
    1:6:cn.thinkingdata.remoteconfig.sysconfig.SystemConfigManager getInstance():41:46 -> getInstance
    1:7:boolean isFindAppIdConfig(java.lang.String):57:63 -> isFindAppIdConfig
    8:8:boolean isFindAppIdConfig(java.lang.String):63:63 -> isFindAppIdConfig
    1:1:boolean isRCCStop(java.lang.String):129:129 -> isRCCStop
    1:5:boolean isStop(java.lang.String,java.lang.String,java.lang.String):137:141 -> isStop
    6:10:boolean isStop(java.lang.String,java.lang.String,java.lang.String):141:145 -> isStop
    1:1:boolean isStrategyStop(java.lang.String,java.lang.String):133:133 -> isStrategyStop
    1:2:void loadLocalConfig(java.lang.String,java.lang.String):50:51 -> loadLocalConfig
    3:3:java.lang.String cn.thinkingdata.remoteconfig.utils.SpUtils.getString(java.lang.String,java.lang.String):45:45 -> loadLocalConfig
    3:3:void loadLocalConfig(java.lang.String,java.lang.String):51 -> loadLocalConfig
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    4:4:java.lang.String cn.thinkingdata.remoteconfig.utils.SpUtils.getString(java.lang.String,java.lang.String):46:46 -> loadLocalConfig
    4:4:void loadLocalConfig(java.lang.String,java.lang.String):51 -> loadLocalConfig
    5:6:void loadLocalConfig(java.lang.String,java.lang.String):52:53 -> loadLocalConfig
    1:6:void loadRemoteSystemConfig(java.lang.String,java.lang.String):97:102 -> loadRemoteSystemConfig
    7:13:void loadRemoteSystemConfig(java.lang.String,java.lang.String):102:108 -> loadRemoteSystemConfig
    1:20:void parseSystemConfig(java.lang.String,java.lang.String):69:88 -> parseSystemConfig
    21:25:void parseSystemConfig(java.lang.String,java.lang.String):88:92 -> parseSystemConfig
cn.thinkingdata.remoteconfig.sysconfig.SystemConfigManager$1 -> cn.thinkingdata.remoteconfig.sysconfig.a:
# {"id":"sourceFile","fileName":"SystemConfigManager.java"}
    java.lang.String val$appId -> a
    cn.thinkingdata.remoteconfig.sysconfig.SystemConfigManager this$0 -> b
    1:1:void <init>(cn.thinkingdata.remoteconfig.sysconfig.SystemConfigManager,java.lang.String):108:108 -> <init>
    1:4:void onSuccess(cn.thinkingdata.core.network.TDNetResponse):117:120 -> onSuccess
cn.thinkingdata.remoteconfig.sysconfig.SystemConfigModel -> cn.thinkingdata.remoteconfig.sysconfig.b:
# {"id":"sourceFile","fileName":"SystemConfigModel.java"}
    java.lang.String appId -> a
    java.lang.String plat -> b
    boolean disabled -> c
    java.util.List disabledVersionList -> d
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/ArrayList;"}
    1:1:void <init>():12:12 -> <init>
cn.thinkingdata.remoteconfig.task.RemoteTaskManager -> cn.thinkingdata.remoteconfig.task.b:
# {"id":"sourceFile","fileName":"RemoteTaskManager.java"}
    java.util.concurrent.ExecutorService mPool -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/concurrent/ThreadPoolExecutor;"}
    cn.thinkingdata.remoteconfig.task.RemoteTaskManager instance -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/task/b;"}
    1:2:void <init>():22:23 -> <init>
    1:6:cn.thinkingdata.remoteconfig.task.RemoteTaskManager getInstance():34:39 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"()Lcn/thinkingdata/remoteconfig/task/b;"}
    7:9:void addTask(java.lang.Runnable):44:46 -> a
cn.thinkingdata.remoteconfig.task.RemoteTaskManager$1 -> cn.thinkingdata.remoteconfig.task.a:
# {"id":"sourceFile","fileName":"RemoteTaskManager.java"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.task.RemoteTaskManager):25:25 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"()V"}
    1:1:java.lang.Thread newThread(java.lang.Runnable):28:28 -> newThread
cn.thinkingdata.remoteconfig.task.RemoteTimerTask -> cn.thinkingdata.remoteconfig.task.h:
# {"id":"sourceFile","fileName":"RemoteTimerTask.java"}
    android.os.Handler mHandler -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/task/g;"}
    cn.thinkingdata.remoteconfig.task.RemoteTimerTask$OnTimerTaskListener mTimerTaskListener -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/task/f;"}
    java.util.List normalTasks -> c
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/ArrayList;"}
    java.util.List debugTasks -> d
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/ArrayList;"}
    boolean hasRegisterActivityLifeCycle -> e
    cn.thinkingdata.remoteconfig.task.RemoteTimerTask instance -> f
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/task/h;"}
    1:1:void <init>():55:55 -> <init>
    2:19:void <init>():46:63 -> <init>
    1:4:cn.thinkingdata.remoteconfig.task.RemoteTimerTask getInstance():49:52 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"()Lcn/thinkingdata/remoteconfig/task/h;"}
    5:8:void registerActivityLifeCycle(android.content.Context):67:70 -> a
cn.thinkingdata.remoteconfig.task.RemoteTimerTask$1 -> cn.thinkingdata.remoteconfig.task.c:
# {"id":"sourceFile","fileName":"RemoteTimerTask.java"}
    cn.thinkingdata.remoteconfig.task.RemoteTimerTask this$0 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/task/h;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.task.RemoteTimerTask):173:173 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/task/h;)V"}
    1:5:void run():176:180 -> run
    6:6:cn.thinkingdata.remoteconfig.core.TDTemplateSetting cn.thinkingdata.remoteconfig.core.TDRemoteInstance.getTemplateSetting(java.lang.String):142:142 -> run
    6:6:void run():180 -> run
    7:7:boolean cn.thinkingdata.remoteconfig.core.TDTemplateSetting.isFetchExpired():374:374 -> run
    7:7:void run():182 -> run
    8:8:void run():183:183 -> run
    9:9:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.fetchWithTempCode(java.lang.String,int,boolean):124:124 -> run
    9:9:void run():183 -> run
cn.thinkingdata.remoteconfig.task.RemoteTimerTask$2 -> cn.thinkingdata.remoteconfig.task.d:
# {"id":"sourceFile","fileName":"RemoteTimerTask.java"}
    int val$type -> a
    cn.thinkingdata.remoteconfig.task.RemoteTimerTask this$0 -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/task/h;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.task.RemoteTimerTask,int):191:191 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/task/h;I)V"}
    1:9:void run():196:204 -> run
    10:10:cn.thinkingdata.remoteconfig.core.TDTemplateSetting cn.thinkingdata.remoteconfig.core.TDRemoteInstance.getTemplateSetting(java.lang.String):142:142 -> run
    10:10:void run():204 -> run
    11:15:boolean cn.thinkingdata.remoteconfig.core.TDTemplateSetting.isExpired():366:370 -> run
    11:15:void run():206 -> run
    16:16:void run():208:208 -> run
    17:17:java.lang.String cn.thinkingdata.remoteconfig.core.TDTemplateSetting.getClientUserId():337:337 -> run
    17:17:void run():208 -> run
    18:18:java.lang.String cn.thinkingdata.remoteconfig.core.TDAppSetting.getClientUserId():108:108 -> run
    18:18:java.lang.String cn.thinkingdata.remoteconfig.core.TDTemplateSetting.getClientUserId():337 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    18:18:void run():208 -> run
    19:22:void run():208:211 -> run
    23:23:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.fetchWithTempCode(java.lang.String,int,boolean):124:124 -> run
    23:23:void run():211 -> run
cn.thinkingdata.remoteconfig.task.RemoteTimerTask$TaskTimerListener -> cn.thinkingdata.remoteconfig.task.f:
# {"id":"sourceFile","fileName":"RemoteTimerTask.java"}
    cn.thinkingdata.remoteconfig.task.RemoteTimerTask this$0 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/task/h;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.task.RemoteTimerTask):218:218 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/task/h;)V"}
cn.thinkingdata.remoteconfig.task.RemoteTimerTask$TaskTimerListener$1 -> cn.thinkingdata.remoteconfig.task.e:
# {"id":"sourceFile","fileName":"RemoteTimerTask.java"}
    cn.thinkingdata.remoteconfig.task.TimerTaskInfo val$info -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/task/p;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.task.RemoteTimerTask$TaskTimerListener,cn.thinkingdata.remoteconfig.task.TimerTaskInfo):231:231 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/task/p;)V"}
    1:4:void run():234:237 -> run
    5:5:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance.fetchWithTempCode(java.lang.String,int,boolean):124:124 -> run
    5:5:void run():237 -> run
cn.thinkingdata.remoteconfig.task.RemoteTimerTask$TimerHandler -> cn.thinkingdata.remoteconfig.task.g:
# {"id":"sourceFile","fileName":"RemoteTimerTask.java"}
    cn.thinkingdata.remoteconfig.task.RemoteTimerTask this$0 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/task/h;"}
    1:2:void <init>(cn.thinkingdata.remoteconfig.task.RemoteTimerTask,android.os.Looper):111:112 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/task/h;Landroid/os/Looper;)V"}
    1:17:void handleMessage(android.os.Message):117:133 -> handleMessage
    18:18:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask$TaskTimerListener.onControlDelay(cn.thinkingdata.remoteconfig.task.TimerTaskInfo):231:231 -> handleMessage
    18:18:void handleMessage(android.os.Message):134 -> handleMessage
    19:19:void handleMessage(android.os.Message):126:126 -> handleMessage
    20:20:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask$TaskTimerListener.onTimerTaskDebug():226:226 -> handleMessage
    20:20:void handleMessage(android.os.Message):127 -> handleMessage
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    21:21:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask$TaskTimerListener.onTimerTaskDebug():226:226 -> handleMessage
    21:21:void handleMessage(android.os.Message):127 -> handleMessage
    22:22:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.handleTimerTasks(int):191:191 -> handleMessage
    22:22:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask$TaskTimerListener.onTimerTaskDebug():226 -> handleMessage
    22:22:void handleMessage(android.os.Message):127 -> handleMessage
    23:23:void handleMessage(android.os.Message):129:129 -> handleMessage
    24:24:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.startDebugTimerTask():94:94 -> handleMessage
    24:24:void handleMessage(android.os.Message):129 -> handleMessage
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    25:26:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.startDebugTimerTask():94:95 -> handleMessage
    25:26:void handleMessage(android.os.Message):129 -> handleMessage
    27:27:void handleMessage(android.os.Message):120:120 -> handleMessage
    28:28:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask$TaskTimerListener.onTimerTaskNormal():221:221 -> handleMessage
    28:28:void handleMessage(android.os.Message):121 -> handleMessage
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    29:29:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask$TaskTimerListener.onTimerTaskNormal():221:221 -> handleMessage
    29:29:void handleMessage(android.os.Message):121 -> handleMessage
    30:30:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.handleTimerTasks(int):191:191 -> handleMessage
    30:30:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask$TaskTimerListener.onTimerTaskNormal():221 -> handleMessage
    30:30:void handleMessage(android.os.Message):121 -> handleMessage
    31:31:void handleMessage(android.os.Message):123:123 -> handleMessage
    32:32:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.startNormalTimerTask():88:88 -> handleMessage
    32:32:void handleMessage(android.os.Message):123 -> handleMessage
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    33:34:void cn.thinkingdata.remoteconfig.task.RemoteTimerTask.startNormalTimerTask():88:89 -> handleMessage
    33:34:void handleMessage(android.os.Message):123 -> handleMessage
cn.thinkingdata.remoteconfig.task.TDClientValueManager -> cn.thinkingdata.remoteconfig.task.l:
# {"id":"sourceFile","fileName":"TDClientValueManager.java"}
    org.json.JSONObject mClientValueParams -> a
    java.lang.Object mClientValueObj -> b
    cn.thinkingdata.remoteconfig.task.TDClientValueManager instance -> c
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/task/l;"}
    1:1:void <init>():20:20 -> <init>
    2:2:void <init>():16:16 -> <init>
    1:8:cn.thinkingdata.remoteconfig.task.TDClientValueManager getInstance():25:32 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"()Lcn/thinkingdata/remoteconfig/task/l;"}
    1:3:void loadLocalClientParams():36:38 -> b
    4:4:java.lang.String cn.thinkingdata.remoteconfig.utils.SpUtils.getString(java.lang.String,java.lang.String):45:45 -> b
    4:4:void loadLocalClientParams():38 -> b
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    5:5:java.lang.String cn.thinkingdata.remoteconfig.utils.SpUtils.getString(java.lang.String,java.lang.String):46:46 -> b
    5:5:void loadLocalClientParams():38 -> b
    6:10:void loadLocalClientParams():38:42 -> b
    11:15:java.lang.String cn.thinkingdata.remoteconfig.utils.SpUtils.getOldStrategyValue():60:64 -> b
    11:15:void loadLocalClientParams():42 -> b
    16:18:void loadLocalClientParams():42:44 -> b
cn.thinkingdata.remoteconfig.task.TDClientValueManager$1 -> cn.thinkingdata.remoteconfig.task.i:
# {"id":"sourceFile","fileName":"TDClientValueManager.java"}
    org.json.JSONObject val$params -> a
    cn.thinkingdata.remoteconfig.task.TDClientValueManager this$0 -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/task/l;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.task.TDClientValueManager,org.json.JSONObject):52:52 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/task/l;Lorg/json/JSONObject;)V"}
    1:9:void run():55:63 -> run
    10:10:void run():63:63 -> run
cn.thinkingdata.remoteconfig.task.TDClientValueManager$2 -> cn.thinkingdata.remoteconfig.task.j:
# {"id":"sourceFile","fileName":"TDClientValueManager.java"}
    java.lang.String val$key -> a
    cn.thinkingdata.remoteconfig.task.TDClientValueManager this$0 -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/task/l;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.task.TDClientValueManager,java.lang.String):70:70 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/task/l;Ljava/lang/String;)V"}
    1:5:void run():73:77 -> run
    6:6:void run():77:77 -> run
cn.thinkingdata.remoteconfig.task.TDClientValueManager$3 -> cn.thinkingdata.remoteconfig.task.k:
# {"id":"sourceFile","fileName":"TDClientValueManager.java"}
    java.lang.String val$key -> a
    double val$num -> b
    cn.thinkingdata.remoteconfig.task.TDClientValueManager this$0 -> c
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/task/l;"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.task.TDClientValueManager,java.lang.String,double):84:84 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/task/l;Ljava/lang/String;D)V"}
    1:12:void run():87:98 -> run
    13:13:void run():98:98 -> run
cn.thinkingdata.remoteconfig.task.TDTask -> cn.thinkingdata.remoteconfig.task.TDTask:
# {"id":"sourceFile","fileName":"TDTask.java"}
    1:1:void <init>():15:15 -> <init>
cn.thinkingdata.remoteconfig.task.TDTask$CallbackThread -> cn.thinkingdata.remoteconfig.task.m:
# {"id":"sourceFile","fileName":"TDTask.java"}
    cn.thinkingdata.remoteconfig.task.TDTask$CallbackThread MAIN -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/task/m;"}
    cn.thinkingdata.remoteconfig.task.TDTask$CallbackThread IO -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/task/m;"}
    cn.thinkingdata.remoteconfig.task.TDTask$CallbackThread[] $VALUES -> c
      # {"id":"com.android.tools.r8.residualsignature","signature":"[Lcn/thinkingdata/remoteconfig/task/m;"}
    1:3:void <clinit>():22:24 -> <clinit>
    4:4:cn.thinkingdata.remoteconfig.task.TDTask$CallbackThread[] $values():20:20 -> <clinit>
    4:4:void <clinit>():20 -> <clinit>
    5:5:void <clinit>():20:20 -> <clinit>
    1:1:void <init>(java.lang.String,int):20:20 -> <init>
    1:1:cn.thinkingdata.remoteconfig.task.TDTask$CallbackThread valueOf(java.lang.String):20:20 -> valueOf
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/String;)Lcn/thinkingdata/remoteconfig/task/m;"}
    1:1:cn.thinkingdata.remoteconfig.task.TDTask$CallbackThread[] values():20:20 -> values
      # {"id":"com.android.tools.r8.residualsignature","signature":"()[Lcn/thinkingdata/remoteconfig/task/m;"}
cn.thinkingdata.remoteconfig.task.TDTaskImpl -> cn.thinkingdata.remoteconfig.task.TDTaskImpl:
# {"id":"sourceFile","fileName":"TDTaskImpl.java"}
    cn.thinkingdata.remoteconfig.task.TDTask$CallbackThread callbackThread -> callbackThread
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/task/m;"}
    1:6:void <init>():16:21 -> <init>
    1:1:cn.thinkingdata.remoteconfig.task.TDTask addOnFailureListener(cn.thinkingdata.remoteconfig.listener.OnFailureListener):76:76 -> addOnFailureListener
    1:1:cn.thinkingdata.remoteconfig.task.TDTask addOnSuccessListener(cn.thinkingdata.remoteconfig.listener.OnSuccessListener):70:70 -> addOnSuccessListener
    1:9:void invokeFailure(int,java.lang.String,cn.thinkingdata.remoteconfig.listener.OnFailureListener):47:55 -> invokeFailure
    1:9:void invokeSuccess(cn.thinkingdata.remoteconfig.listener.OnSuccessListener):34:42 -> invokeSuccess
    1:1:cn.thinkingdata.remoteconfig.task.TDTask io():88:88 -> io
    1:1:cn.thinkingdata.remoteconfig.task.TDTask main():82:82 -> main
    1:3:void onResultError(int,java.lang.String):61:63 -> onResultError
    1:3:void onResultSuccess():26:28 -> onResultSuccess
cn.thinkingdata.remoteconfig.task.TDTaskImpl$1 -> cn.thinkingdata.remoteconfig.task.n:
# {"id":"sourceFile","fileName":"TDTaskImpl.java"}
    cn.thinkingdata.remoteconfig.listener.OnSuccessListener val$listener -> a
    1:1:void <init>(cn.thinkingdata.remoteconfig.task.TDTaskImpl,cn.thinkingdata.remoteconfig.listener.OnSuccessListener):35:35 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/listener/OnSuccessListener;)V"}
    1:1:void run():38:38 -> run
cn.thinkingdata.remoteconfig.task.TDTaskImpl$2 -> cn.thinkingdata.remoteconfig.task.o:
# {"id":"sourceFile","fileName":"TDTaskImpl.java"}
    cn.thinkingdata.remoteconfig.listener.OnFailureListener val$listener -> a
    int val$code -> b
    java.lang.String val$error -> c
    1:1:void <init>(cn.thinkingdata.remoteconfig.task.TDTaskImpl,cn.thinkingdata.remoteconfig.listener.OnFailureListener,int,java.lang.String):48:48 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(ILjava/lang/String;Lcn/thinkingdata/remoteconfig/listener/OnFailureListener;)V"}
    1:1:void run():51:51 -> run
cn.thinkingdata.remoteconfig.task.TimerTaskInfo -> cn.thinkingdata.remoteconfig.task.p:
# {"id":"sourceFile","fileName":"TimerTaskInfo.java"}
    java.lang.String appId -> a
    java.lang.String tempCode -> b
    boolean isDebug -> c
    1:3:void <init>(java.lang.String,java.lang.String):17:19 -> <init>
    1:3:boolean equals(java.lang.Object):24:26 -> equals
cn.thinkingdata.remoteconfig.user.ClientUser -> cn.thinkingdata.remoteconfig.user.a:
# {"id":"sourceFile","fileName":"ClientUser.java"}
    java.lang.String accountId -> a
    java.lang.String distinctId -> b
    java.lang.String clientUserId -> c
    1:1:void <init>():15:15 -> <init>
    1:12:cn.thinkingdata.remoteconfig.user.ClientUser parseCursor(android.database.Cursor):26:37 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Landroid/database/Cursor;)Lcn/thinkingdata/remoteconfig/user/a;"}
cn.thinkingdata.remoteconfig.user.ClientUserIdDataBaseHelper -> cn.thinkingdata.remoteconfig.user.b:
# {"id":"sourceFile","fileName":"ClientUserIdDataBaseHelper.java"}
    java.io.File dbFile -> a
    cn.thinkingdata.remoteconfig.user.ClientUserIdDataBaseHelper mHelper -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/user/b;"}
    1:2:void <init>(android.content.Context):46:47 -> <init>
    1:1:cn.thinkingdata.remoteconfig.user.ClientUserIdDataBaseHelper getHelper(android.content.Context):39:39 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Landroid/content/Context;)Lcn/thinkingdata/remoteconfig/user/b;"}
    2:2:boolean isDatabaseExists(java.io.File):139:139 -> a
    2:2:cn.thinkingdata.remoteconfig.user.ClientUserIdDataBaseHelper getHelper(android.content.Context):39 -> a
    3:5:cn.thinkingdata.remoteconfig.user.ClientUserIdDataBaseHelper getHelper(android.content.Context):40:42 -> a
    6:13:cn.thinkingdata.remoteconfig.user.ClientUser findUserByDistinctId(java.lang.String,java.lang.String):102:109 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/String;Ljava/lang/String;)Lcn/thinkingdata/remoteconfig/user/a;"}
    14:17:cn.thinkingdata.remoteconfig.user.ClientUser findUserByDistinctId(java.lang.String,java.lang.String):106:109 -> a
    18:20:cn.thinkingdata.remoteconfig.user.ClientUser findUserByDistinctId(java.lang.String,java.lang.String):109:111 -> a
    1:1:void onCreate(android.database.sqlite.SQLiteDatabase):52:52 -> onCreate
cn.thinkingdata.remoteconfig.user.ClientUserManager -> cn.thinkingdata.remoteconfig.user.ClientUserManager:
# {"id":"sourceFile","fileName":"ClientUserManager.java"}
    1:3:void <init>(android.content.Context):32:34 -> <init>
    1:1:void createNewUser(java.lang.String,java.lang.String,java.lang.String,java.lang.String):126:126 -> createNewUser
    2:17:void cn.thinkingdata.remoteconfig.user.ClientUserIdDataBaseHelper.insertNewUser(cn.thinkingdata.remoteconfig.user.ClientUser):62:77 -> createNewUser
    2:17:void createNewUser(java.lang.String,java.lang.String,java.lang.String,java.lang.String):126 -> createNewUser
    1:1:java.lang.String generateClientUserId():130:130 -> generateClientUserId
    1:1:void getClientUserId(java.lang.String,java.lang.String,java.lang.String,cn.thinkingdata.remoteconfig.user.ClientUserManager$OnGetClientUserIdCallBack):100:100 -> getClientUserId
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcn/thinkingdata/remoteconfig/user/f;)V"}
    2:2:java.util.concurrent.Future getClientUserId(java.lang.String,java.lang.String,java.lang.String):112:112 -> getClientUserId
    1:11:java.lang.String getClientUserIdSync(java.lang.String,java.lang.String,java.lang.String):56:66 -> getClientUserIdSync
    12:19:cn.thinkingdata.remoteconfig.user.ClientUser cn.thinkingdata.remoteconfig.user.ClientUserIdDataBaseHelper.findUserByAccountId(java.lang.String,java.lang.String):85:92 -> getClientUserIdSync
    12:19:java.lang.String getClientUserIdSync(java.lang.String,java.lang.String,java.lang.String):66 -> getClientUserIdSync
    20:20:cn.thinkingdata.remoteconfig.user.ClientUser cn.thinkingdata.remoteconfig.user.ClientUserIdDataBaseHelper.findUserByAccountId(java.lang.String,java.lang.String):89:89 -> getClientUserIdSync
    20:20:java.lang.String getClientUserIdSync(java.lang.String,java.lang.String,java.lang.String):66 -> getClientUserIdSync
    21:31:java.lang.String getClientUserIdSync(java.lang.String,java.lang.String,java.lang.String):67:77 -> getClientUserIdSync
    32:37:void cn.thinkingdata.remoteconfig.user.ClientUserIdDataBaseHelper.updateAccountId(java.lang.String,java.lang.String,java.lang.String):117:122 -> getClientUserIdSync
    32:37:java.lang.String getClientUserIdSync(java.lang.String,java.lang.String,java.lang.String):77 -> getClientUserIdSync
    38:49:java.lang.String getClientUserIdSync(java.lang.String,java.lang.String,java.lang.String):78:89 -> getClientUserIdSync
    50:55:void cn.thinkingdata.remoteconfig.user.ClientUserIdDataBaseHelper.updateDistinctId(java.lang.String,java.lang.String,java.lang.String):128:133 -> getClientUserIdSync
    50:55:java.lang.String getClientUserIdSync(java.lang.String,java.lang.String,java.lang.String):89 -> getClientUserIdSync
    56:59:java.lang.String getClientUserIdSync(java.lang.String,java.lang.String,java.lang.String):91:94 -> getClientUserIdSync
    60:62:cn.thinkingdata.remoteconfig.user.ClientUser cn.thinkingdata.remoteconfig.user.ClientUserIdDataBaseHelper.findUserByAccountId(java.lang.String,java.lang.String):92:94 -> getClientUserIdSync
    60:62:java.lang.String getClientUserIdSync(java.lang.String,java.lang.String,java.lang.String):66 -> getClientUserIdSync
    1:8:cn.thinkingdata.remoteconfig.user.ClientUserManager getInstance(android.content.Context):45:52 -> getInstance
cn.thinkingdata.remoteconfig.user.ClientUserManager$1 -> cn.thinkingdata.remoteconfig.user.c:
# {"id":"sourceFile","fileName":"ClientUserManager.java"}
    1:1:void <init>(cn.thinkingdata.remoteconfig.user.ClientUserManager):36:36 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"()V"}
    1:1:java.lang.Thread newThread(java.lang.Runnable):39:39 -> newThread
cn.thinkingdata.remoteconfig.user.ClientUserManager$2 -> cn.thinkingdata.remoteconfig.user.d:
# {"id":"sourceFile","fileName":"ClientUserManager.java"}
    java.lang.String val$appId -> a
    java.lang.String val$accountId -> b
    java.lang.String val$distinctId -> c
    cn.thinkingdata.remoteconfig.user.ClientUserManager$OnGetClientUserIdCallBack val$callBack -> d
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/user/f;"}
    cn.thinkingdata.remoteconfig.user.ClientUserManager this$0 -> e
    1:1:void <init>(cn.thinkingdata.remoteconfig.user.ClientUserManager,java.lang.String,java.lang.String,java.lang.String,cn.thinkingdata.remoteconfig.user.ClientUserManager$OnGetClientUserIdCallBack):100:100 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/remoteconfig/user/ClientUserManager;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcn/thinkingdata/remoteconfig/user/f;)V"}
    1:3:void run():103:105 -> run
    4:4:void cn.thinkingdata.remoteconfig.core.TDRemoteInstance$8.onClientUserIdSuccess(java.lang.String):347:347 -> run
    4:4:void run():105 -> run
cn.thinkingdata.remoteconfig.user.ClientUserManager$3 -> cn.thinkingdata.remoteconfig.user.e:
# {"id":"sourceFile","fileName":"ClientUserManager.java"}
    java.lang.String val$appId -> a
    java.lang.String val$accountId -> b
    java.lang.String val$distinctId -> c
    cn.thinkingdata.remoteconfig.user.ClientUserManager this$0 -> d
    1:1:void <init>(cn.thinkingdata.remoteconfig.user.ClientUserManager,java.lang.String,java.lang.String,java.lang.String):112:112 -> <init>
    1:1:java.lang.String call():115:115 -> call
    1:1:java.lang.Object call():112 -> call
cn.thinkingdata.remoteconfig.user.ClientUserManager$OnGetClientUserIdCallBack -> cn.thinkingdata.remoteconfig.user.f:
# {"id":"sourceFile","fileName":"ClientUserManager.java"}
cn.thinkingdata.remoteconfig.user.TDUserInfo -> cn.thinkingdata.remoteconfig.user.g:
# {"id":"sourceFile","fileName":"TDUserInfo.java"}
    java.lang.String accountId -> a
    java.lang.String distinctId -> b
    java.lang.String clientUserId -> c
    java.lang.String userId -> d
    1:5:void <init>(java.lang.String,java.lang.String,java.lang.String,java.lang.String):17:21 -> <init>
cn.thinkingdata.remoteconfig.utils.AnalyticUtil -> cn.thinkingdata.remoteconfig.utils.a:
# {"id":"sourceFile","fileName":"AnalyticUtil.java"}
    1:1:cn.thinkingdata.core.router.provider.IAnalyticsProvider getAnalyticProvider():22:22 -> a
    2:12:void trackRiskEvent(java.lang.String,java.lang.String):78:88 -> a
    1:5:long getCurrentTimeStamp():29:33 -> b
cn.thinkingdata.remoteconfig.utils.JsonUtil -> cn.thinkingdata.remoteconfig.utils.b:
# {"id":"sourceFile","fileName":"JsonUtil.java"}
    1:10:void mergeJSONObject(org.json.JSONObject,org.json.JSONObject):39:48 -> a
    11:21:org.json.JSONArray formatJSONArray(org.json.JSONArray):65:75 -> a
    22:38:org.json.JSONObject formatJSONObject(org.json.JSONObject):84:100 -> a
    1:12:void parseJsonConfig(org.json.JSONObject,org.json.JSONObject):210:221 -> b
    13:32:org.json.JSONObject parseConfigToJson(org.json.JSONObject):247:266 -> b
cn.thinkingdata.remoteconfig.utils.LogUtil -> cn.thinkingdata.remoteconfig.utils.c:
# {"id":"sourceFile","fileName":"LogUtil.java"}
    boolean mEnableLog -> a
    1:2:void e(java.lang.String):56:57 -> a
    1:2:void i(java.lang.String):26:27 -> b
cn.thinkingdata.remoteconfig.utils.RemoteConfigUtil -> cn.thinkingdata.remoteconfig.utils.d:
# {"id":"sourceFile","fileName":"RemoteConfigUtil.java"}
    1:18:cn.thinkingdata.remoteconfig.TDRemoteConfigSettings copyNewSettings(cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):44:61 -> a
    1:18:cn.thinkingdata.remoteconfig.TDRemoteConfigSettings buildSettings(cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):81 -> a
    19:25:cn.thinkingdata.remoteconfig.TDRemoteConfigSettings buildSettings(cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):82:88 -> a
    26:26:cn.thinkingdata.remoteconfig.TDRemoteConfigSettings buildSettings(cn.thinkingdata.remoteconfig.TDRemoteConfigSettings):83:83 -> a
    27:31:java.util.List copyNewTimerTasks(java.util.List):69:73 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/util/ArrayList;)Ljava/util/ArrayList;"}
    32:39:org.json.JSONObject obtainPostParams(android.content.Context,java.lang.String,cn.thinkingdata.remoteconfig.core.TDTemplateSetting,cn.thinkingdata.remoteconfig.user.TDUserInfo):94:101 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Landroid/content/Context;Ljava/lang/String;Lcn/thinkingdata/remoteconfig/core/o;Lcn/thinkingdata/remoteconfig/user/g;)Lorg/json/JSONObject;"}
    40:43:java.lang.String cn.thinkingdata.remoteconfig.core.TDTemplateSetting.getTempCode():76:79 -> a
    40:43:org.json.JSONObject obtainPostParams(android.content.Context,java.lang.String,cn.thinkingdata.remoteconfig.core.TDTemplateSetting,cn.thinkingdata.remoteconfig.user.TDUserInfo):101 -> a
    44:70:org.json.JSONObject obtainPostParams(android.content.Context,java.lang.String,cn.thinkingdata.remoteconfig.core.TDTemplateSetting,cn.thinkingdata.remoteconfig.user.TDUserInfo):101:127 -> a
    71:77:java.lang.String getStrategySDKVersion():205:211 -> a
    71:77:org.json.JSONObject obtainPostParams(android.content.Context,java.lang.String,cn.thinkingdata.remoteconfig.core.TDTemplateSetting,cn.thinkingdata.remoteconfig.user.TDUserInfo):127 -> a
    78:79:org.json.JSONObject obtainPostParams(android.content.Context,java.lang.String,cn.thinkingdata.remoteconfig.core.TDTemplateSetting,cn.thinkingdata.remoteconfig.user.TDUserInfo):127:128 -> a
    80:86:java.lang.String getExperimentSDKVersion():219:225 -> a
    80:86:org.json.JSONObject obtainPostParams(android.content.Context,java.lang.String,cn.thinkingdata.remoteconfig.core.TDTemplateSetting,cn.thinkingdata.remoteconfig.user.TDUserInfo):128 -> a
    87:93:org.json.JSONObject obtainPostParams(android.content.Context,java.lang.String,cn.thinkingdata.remoteconfig.core.TDTemplateSetting,cn.thinkingdata.remoteconfig.user.TDUserInfo):128:134 -> a
    94:94:java.util.Map cn.thinkingdata.remoteconfig.core.TDTemplateSetting.getCustomParams():144:144 -> a
    94:94:org.json.JSONObject obtainPostParams(android.content.Context,java.lang.String,cn.thinkingdata.remoteconfig.core.TDTemplateSetting,cn.thinkingdata.remoteconfig.user.TDUserInfo):135 -> a
    95:96:org.json.JSONObject obtainPostParams(android.content.Context,java.lang.String,cn.thinkingdata.remoteconfig.core.TDTemplateSetting,cn.thinkingdata.remoteconfig.user.TDUserInfo):136:137 -> a
    97:97:java.util.Map cn.thinkingdata.remoteconfig.core.TDTemplateSetting.getCustomBucketId():189:189 -> a
    97:97:org.json.JSONObject obtainPostParams(android.content.Context,java.lang.String,cn.thinkingdata.remoteconfig.core.TDTemplateSetting,cn.thinkingdata.remoteconfig.user.TDUserInfo):139 -> a
    98:102:org.json.JSONObject obtainPostParams(android.content.Context,java.lang.String,cn.thinkingdata.remoteconfig.core.TDTemplateSetting,cn.thinkingdata.remoteconfig.user.TDUserInfo):140:144 -> a
    103:128:cn.thinkingdata.remoteconfig.model.TDNetModel toNetModel(cn.thinkingdata.core.network.TDNetResponse,java.lang.String):152:177 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/core/network/TDNetResponse;Ljava/lang/String;)Lcn/thinkingdata/remoteconfig/model/a;"}
    129:129:java.lang.String calculateSHA256(java.lang.String,java.lang.String):40:40 -> a
    129:129:cn.thinkingdata.remoteconfig.model.TDNetModel toNetModel(cn.thinkingdata.core.network.TDNetResponse,java.lang.String):178 -> a
    130:138:cn.thinkingdata.remoteconfig.model.TDNetModel toNetModel(cn.thinkingdata.core.network.TDNetResponse,java.lang.String):179:187 -> a
    139:161:cn.thinkingdata.remoteconfig.model.TDNetModel toNetModel(cn.thinkingdata.core.network.TDNetResponse,java.lang.String):173:195 -> a
cn.thinkingdata.remoteconfig.utils.SpUtils -> cn.thinkingdata.remoteconfig.utils.e:
# {"id":"sourceFile","fileName":"SpUtils.java"}
    android.content.SharedPreferences sp -> a
    cn.thinkingdata.remoteconfig.utils.SpUtils instance -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/remoteconfig/utils/e;"}
    1:1:void <init>():23:23 -> <init>
    1:4:cn.thinkingdata.remoteconfig.utils.SpUtils getInstance():33:36 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"()Lcn/thinkingdata/remoteconfig/utils/e;"}
    5:6:void putString(java.lang.String,java.lang.String):40:41 -> a
