.class public Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient; .super Ljava/lang/Object; .source "ConfigMetadataClient.java" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient$BackoffMetadata; } .end annotation # static fields .field private static final BACKOFF_END_TIME_IN_MILLIS_KEY:Ljava/lang/String; = "backoff_end_time_in_millis" .field private static final FETCH_TIMEOUT_IN_SECONDS_KEY:Ljava/lang/String; = "fetch_timeout_in_seconds" .field private static final LAST_FETCH_ETAG_KEY:Ljava/lang/String; = "last_fetch_etag" .field private static final LAST_FETCH_STATUS_KEY:Ljava/lang/String; = "last_fetch_status" .field public static final LAST_FETCH_TIME_IN_MILLIS_NO_FETCH_YET:J = -0x1L .annotation build Landroidx/annotation/VisibleForTesting; .end annotation .end field .field public static final LAST_FETCH_TIME_NO_FETCH_YET:Ljava/util/Date; .field private static final LAST_SUCCESSFUL_FETCH_TIME_IN_MILLIS_KEY:Ljava/lang/String; = "last_fetch_time_in_millis" .field private static final MINIMUM_FETCH_INTERVAL_IN_SECONDS_KEY:Ljava/lang/String; = "minimum_fetch_interval_in_seconds" .field public static final NO_BACKOFF_TIME:Ljava/util/Date; .annotation build Landroidx/annotation/VisibleForTesting; .end annotation .end field .field private static final NO_BACKOFF_TIME_IN_MILLIS:J = -0x1L .field public static final NO_FAILED_FETCHES:I = 0x0 .annotation build Landroidx/annotation/VisibleForTesting; .end annotation .end field .field private static final NUM_FAILED_FETCHES_KEY:Ljava/lang/String; = "num_failed_fetches" # instance fields .field private final backoffMetadataLock:Ljava/lang/Object; .field private final frcInfoLock:Ljava/lang/Object; .field private final frcMetadata:Landroid/content/SharedPreferences; # direct methods .method public static constructor ()V .locals 3 .line 1 new-instance v0, Ljava/util/Date; const-wide/16 v1, -0x1 invoke-direct {v0, v1, v2}, Ljava/util/Date;->(J)V sput-object v0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->LAST_FETCH_TIME_NO_FETCH_YET:Ljava/util/Date; .line 2 new-instance v0, Ljava/util/Date; invoke-direct {v0, v1, v2}, Ljava/util/Date;->(J)V sput-object v0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->NO_BACKOFF_TIME:Ljava/util/Date; return-void .end method .method public constructor (Landroid/content/SharedPreferences;)V .locals 0 .line 1 invoke-direct {p0}, Ljava/lang/Object;->()V .line 2 iput-object p1, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->frcMetadata:Landroid/content/SharedPreferences; .line 3 new-instance p1, Ljava/lang/Object; invoke-direct {p1}, Ljava/lang/Object;->()V iput-object p1, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->frcInfoLock:Ljava/lang/Object; .line 4 new-instance p1, Ljava/lang/Object; invoke-direct {p1}, Ljava/lang/Object;->()V iput-object p1, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->backoffMetadataLock:Ljava/lang/Object; return-void .end method # virtual methods .method public clear()V .locals 2 .annotation build Landroidx/annotation/WorkerThread; .end annotation .line 1 iget-object v0, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->frcInfoLock:Ljava/lang/Object; monitor-enter v0 .line 2 :try_start_0 iget-object v1, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->frcMetadata:Landroid/content/SharedPreferences; invoke-interface {v1}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; move-result-object v1 invoke-interface {v1}, Landroid/content/SharedPreferences$Editor;->clear()Landroid/content/SharedPreferences$Editor; move-result-object v1 invoke-interface {v1}, Landroid/content/SharedPreferences$Editor;->commit()Z .line 3 monitor-exit v0 return-void :catchall_0 move-exception v1 monitor-exit v0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 throw v1 .end method .method public getBackoffMetadata()Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient$BackoffMetadata; .locals 8 .line 1 iget-object v0, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->backoffMetadataLock:Ljava/lang/Object; monitor-enter v0 .line 2 :try_start_0 new-instance v1, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient$BackoffMetadata; iget-object v2, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->frcMetadata:Landroid/content/SharedPreferences; const-string v3, "num_failed_fetches" const/4 v4, 0x0 .line 3 invoke-interface {v2, v3, v4}, Landroid/content/SharedPreferences;->getInt(Ljava/lang/String;I)I move-result v2 new-instance v3, Ljava/util/Date; iget-object v4, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->frcMetadata:Landroid/content/SharedPreferences; const-string v5, "backoff_end_time_in_millis" const-wide/16 v6, -0x1 .line 4 invoke-interface {v4, v5, v6, v7}, Landroid/content/SharedPreferences;->getLong(Ljava/lang/String;J)J move-result-wide v4 invoke-direct {v3, v4, v5}, Ljava/util/Date;->(J)V invoke-direct {v1, v2, v3}, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient$BackoffMetadata;->(ILjava/util/Date;)V monitor-exit v0 return-object v1 :catchall_0 move-exception v1 .line 5 monitor-exit v0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 throw v1 .end method .method public getFetchTimeoutInSeconds()J .locals 4 .line 1 iget-object v0, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->frcMetadata:Landroid/content/SharedPreferences; const-string v1, "fetch_timeout_in_seconds" const-wide/16 v2, 0x3c invoke-interface {v0, v1, v2, v3}, Landroid/content/SharedPreferences;->getLong(Ljava/lang/String;J)J move-result-wide v0 return-wide v0 .end method .method public getInfo()Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigInfo; .locals 9 .line 1 iget-object v0, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->frcInfoLock:Ljava/lang/Object; monitor-enter v0 .line 2 :try_start_0 iget-object v1, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->frcMetadata:Landroid/content/SharedPreferences; const-string v2, "last_fetch_time_in_millis" const-wide/16 v3, -0x1 .line 3 invoke-interface {v1, v2, v3, v4}, Landroid/content/SharedPreferences;->getLong(Ljava/lang/String;J)J move-result-wide v1 .line 4 iget-object v3, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->frcMetadata:Landroid/content/SharedPreferences; const-string v4, "last_fetch_status" const/4 v5, 0x0 .line 5 invoke-interface {v3, v4, v5}, Landroid/content/SharedPreferences;->getInt(Ljava/lang/String;I)I move-result v3 .line 6 new-instance v4, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigSettings$Builder; invoke-direct {v4}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigSettings$Builder;->()V iget-object v5, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->frcMetadata:Landroid/content/SharedPreferences; const-string v6, "fetch_timeout_in_seconds" const-wide/16 v7, 0x3c .line 7 invoke-interface {v5, v6, v7, v8}, Landroid/content/SharedPreferences;->getLong(Ljava/lang/String;J)J move-result-wide v5 .line 8 invoke-virtual {v4, v5, v6}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigSettings$Builder;->setFetchTimeoutInSeconds(J)Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigSettings$Builder; move-result-object v4 iget-object v5, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->frcMetadata:Landroid/content/SharedPreferences; const-string v6, "minimum_fetch_interval_in_seconds" sget-wide v7, Lcom/google/firebase/remoteconfig/internal/ConfigFetchHandler;->DEFAULT_MINIMUM_FETCH_INTERVAL_IN_SECONDS:J .line 9 invoke-interface {v5, v6, v7, v8}, Landroid/content/SharedPreferences;->getLong(Ljava/lang/String;J)J move-result-wide v5 .line 10 invoke-virtual {v4, v5, v6}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigSettings$Builder;->setMinimumFetchIntervalInSeconds(J)Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigSettings$Builder; move-result-object v4 .line 11 invoke-virtual {v4}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigSettings$Builder;->build()Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigSettings; move-result-object v4 .line 12 invoke-static {}, Lcom/google/firebase/remoteconfig/internal/FirebaseRemoteConfigInfoImpl;->newBuilder()Lcom/google/firebase/remoteconfig/internal/FirebaseRemoteConfigInfoImpl$Builder; move-result-object v5 .line 13 invoke-virtual {v5, v3}, Lcom/google/firebase/remoteconfig/internal/FirebaseRemoteConfigInfoImpl$Builder;->withLastFetchStatus(I)Lcom/google/firebase/remoteconfig/internal/FirebaseRemoteConfigInfoImpl$Builder; move-result-object v3 .line 14 invoke-virtual {v3, v1, v2}, Lcom/google/firebase/remoteconfig/internal/FirebaseRemoteConfigInfoImpl$Builder;->withLastSuccessfulFetchTimeInMillis(J)Lcom/google/firebase/remoteconfig/internal/FirebaseRemoteConfigInfoImpl$Builder; move-result-object v1 .line 15 invoke-virtual {v1, v4}, Lcom/google/firebase/remoteconfig/internal/FirebaseRemoteConfigInfoImpl$Builder;->withConfigSettings(Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigSettings;)Lcom/google/firebase/remoteconfig/internal/FirebaseRemoteConfigInfoImpl$Builder; move-result-object v1 .line 16 invoke-virtual {v1}, Lcom/google/firebase/remoteconfig/internal/FirebaseRemoteConfigInfoImpl$Builder;->build()Lcom/google/firebase/remoteconfig/internal/FirebaseRemoteConfigInfoImpl; move-result-object v1 monitor-exit v0 return-object v1 :catchall_0 move-exception v1 .line 17 monitor-exit v0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 throw v1 .end method .method public getLastFetchETag()Ljava/lang/String; .locals 3 .annotation build Landroidx/annotation/Nullable; .end annotation .line 1 iget-object v0, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->frcMetadata:Landroid/content/SharedPreferences; const-string v1, "last_fetch_etag" const/4 v2, 0x0 invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object v0 return-object v0 .end method .method public getLastFetchStatus()I .locals 3 .line 1 iget-object v0, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->frcMetadata:Landroid/content/SharedPreferences; const-string v1, "last_fetch_status" const/4 v2, 0x0 invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getInt(Ljava/lang/String;I)I move-result v0 return v0 .end method .method public getLastSuccessfulFetchTime()Ljava/util/Date; .locals 5 .line 1 new-instance v0, Ljava/util/Date; iget-object v1, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->frcMetadata:Landroid/content/SharedPreferences; const-string v2, "last_fetch_time_in_millis" const-wide/16 v3, -0x1 .line 2 invoke-interface {v1, v2, v3, v4}, Landroid/content/SharedPreferences;->getLong(Ljava/lang/String;J)J move-result-wide v1 invoke-direct {v0, v1, v2}, Ljava/util/Date;->(J)V return-object v0 .end method .method public getMinimumFetchIntervalInSeconds()J .locals 4 .line 1 iget-object v0, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->frcMetadata:Landroid/content/SharedPreferences; sget-wide v1, Lcom/google/firebase/remoteconfig/internal/ConfigFetchHandler;->DEFAULT_MINIMUM_FETCH_INTERVAL_IN_SECONDS:J const-string v3, "minimum_fetch_interval_in_seconds" invoke-interface {v0, v3, v1, v2}, Landroid/content/SharedPreferences;->getLong(Ljava/lang/String;J)J move-result-wide v0 return-wide v0 .end method .method public resetBackoff()V .locals 2 .line 1 sget-object v0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->NO_BACKOFF_TIME:Ljava/util/Date; const/4 v1, 0x0 invoke-virtual {p0, v1, v0}, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->setBackoffMetadata(ILjava/util/Date;)V return-void .end method .method public setBackoffMetadata(ILjava/util/Date;)V .locals 4 .line 1 iget-object v0, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->backoffMetadataLock:Ljava/lang/Object; monitor-enter v0 .line 2 :try_start_0 iget-object v1, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->frcMetadata:Landroid/content/SharedPreferences; .line 3 invoke-interface {v1}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; move-result-object v1 const-string v2, "num_failed_fetches" .line 4 invoke-interface {v1, v2, p1}, Landroid/content/SharedPreferences$Editor;->putInt(Ljava/lang/String;I)Landroid/content/SharedPreferences$Editor; move-result-object p1 const-string v1, "backoff_end_time_in_millis" .line 5 invoke-virtual {p2}, Ljava/util/Date;->getTime()J move-result-wide v2 invoke-interface {p1, v1, v2, v3}, Landroid/content/SharedPreferences$Editor;->putLong(Ljava/lang/String;J)Landroid/content/SharedPreferences$Editor; move-result-object p1 .line 6 invoke-interface {p1}, Landroid/content/SharedPreferences$Editor;->apply()V .line 7 monitor-exit v0 return-void :catchall_0 move-exception p1 monitor-exit v0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 throw p1 .end method .method public setConfigSettings(Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigSettings;)V .locals 5 .annotation build Landroidx/annotation/WorkerThread; .end annotation .line 1 iget-object v0, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->frcInfoLock:Ljava/lang/Object; monitor-enter v0 .line 2 :try_start_0 iget-object v1, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->frcMetadata:Landroid/content/SharedPreferences; .line 3 invoke-interface {v1}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; move-result-object v1 const-string v2, "fetch_timeout_in_seconds" .line 4 invoke-virtual {p1}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigSettings;->getFetchTimeoutInSeconds()J move-result-wide v3 invoke-interface {v1, v2, v3, v4}, Landroid/content/SharedPreferences$Editor;->putLong(Ljava/lang/String;J)Landroid/content/SharedPreferences$Editor; move-result-object v1 const-string v2, "minimum_fetch_interval_in_seconds" .line 5 invoke-virtual {p1}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigSettings;->getMinimumFetchIntervalInSeconds()J move-result-wide v3 .line 6 invoke-interface {v1, v2, v3, v4}, Landroid/content/SharedPreferences$Editor;->putLong(Ljava/lang/String;J)Landroid/content/SharedPreferences$Editor; move-result-object p1 .line 7 invoke-interface {p1}, Landroid/content/SharedPreferences$Editor;->commit()Z .line 8 monitor-exit v0 return-void :catchall_0 move-exception p1 monitor-exit v0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 throw p1 .end method .method public setConfigSettingsWithoutWaitingOnDiskWrite(Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigSettings;)V .locals 5 .line 1 iget-object v0, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->frcInfoLock:Ljava/lang/Object; monitor-enter v0 .line 2 :try_start_0 iget-object v1, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->frcMetadata:Landroid/content/SharedPreferences; .line 3 invoke-interface {v1}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; move-result-object v1 const-string v2, "fetch_timeout_in_seconds" .line 4 invoke-virtual {p1}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigSettings;->getFetchTimeoutInSeconds()J move-result-wide v3 invoke-interface {v1, v2, v3, v4}, Landroid/content/SharedPreferences$Editor;->putLong(Ljava/lang/String;J)Landroid/content/SharedPreferences$Editor; move-result-object v1 const-string v2, "minimum_fetch_interval_in_seconds" .line 5 invoke-virtual {p1}, Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigSettings;->getMinimumFetchIntervalInSeconds()J move-result-wide v3 .line 6 invoke-interface {v1, v2, v3, v4}, Landroid/content/SharedPreferences$Editor;->putLong(Ljava/lang/String;J)Landroid/content/SharedPreferences$Editor; move-result-object p1 .line 7 invoke-interface {p1}, Landroid/content/SharedPreferences$Editor;->apply()V .line 8 monitor-exit v0 return-void :catchall_0 move-exception p1 monitor-exit v0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 throw p1 .end method .method public setLastFetchETag(Ljava/lang/String;)V .locals 3 .line 1 iget-object v0, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->frcInfoLock:Ljava/lang/Object; monitor-enter v0 .line 2 :try_start_0 iget-object v1, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->frcMetadata:Landroid/content/SharedPreferences; invoke-interface {v1}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; move-result-object v1 const-string v2, "last_fetch_etag" invoke-interface {v1, v2, p1}, Landroid/content/SharedPreferences$Editor;->putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; move-result-object p1 invoke-interface {p1}, Landroid/content/SharedPreferences$Editor;->apply()V .line 3 monitor-exit v0 return-void :catchall_0 move-exception p1 monitor-exit v0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 throw p1 .end method .method public updateLastFetchAsFailed()V .locals 4 .line 1 iget-object v0, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->frcInfoLock:Ljava/lang/Object; monitor-enter v0 .line 2 :try_start_0 iget-object v1, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->frcMetadata:Landroid/content/SharedPreferences; invoke-interface {v1}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; move-result-object v1 const-string v2, "last_fetch_status" const/4 v3, 0x1 invoke-interface {v1, v2, v3}, Landroid/content/SharedPreferences$Editor;->putInt(Ljava/lang/String;I)Landroid/content/SharedPreferences$Editor; move-result-object v1 invoke-interface {v1}, Landroid/content/SharedPreferences$Editor;->apply()V .line 3 monitor-exit v0 return-void :catchall_0 move-exception v1 monitor-exit v0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 throw v1 .end method .method public updateLastFetchAsSuccessfulAt(Ljava/util/Date;)V .locals 5 .line 1 iget-object v0, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->frcInfoLock:Ljava/lang/Object; monitor-enter v0 .line 2 :try_start_0 iget-object v1, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->frcMetadata:Landroid/content/SharedPreferences; .line 3 invoke-interface {v1}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; move-result-object v1 const-string v2, "last_fetch_status" const/4 v3, -0x1 .line 4 invoke-interface {v1, v2, v3}, Landroid/content/SharedPreferences$Editor;->putInt(Ljava/lang/String;I)Landroid/content/SharedPreferences$Editor; move-result-object v1 const-string v2, "last_fetch_time_in_millis" .line 5 invoke-virtual {p1}, Ljava/util/Date;->getTime()J move-result-wide v3 invoke-interface {v1, v2, v3, v4}, Landroid/content/SharedPreferences$Editor;->putLong(Ljava/lang/String;J)Landroid/content/SharedPreferences$Editor; move-result-object p1 .line 6 invoke-interface {p1}, Landroid/content/SharedPreferences$Editor;->apply()V .line 7 monitor-exit v0 return-void :catchall_0 move-exception p1 monitor-exit v0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 throw p1 .end method .method public updateLastFetchAsThrottled()V .locals 4 .line 1 iget-object v0, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->frcInfoLock:Ljava/lang/Object; monitor-enter v0 .line 2 :try_start_0 iget-object v1, p0, Lcom/google/firebase/remoteconfig/internal/ConfigMetadataClient;->frcMetadata:Landroid/content/SharedPreferences; invoke-interface {v1}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; move-result-object v1 const-string v2, "last_fetch_status" const/4 v3, 0x2 invoke-interface {v1, v2, v3}, Landroid/content/SharedPreferences$Editor;->putInt(Ljava/lang/String;I)Landroid/content/SharedPreferences$Editor; move-result-object v1 invoke-interface {v1}, Landroid/content/SharedPreferences$Editor;->apply()V .line 3 monitor-exit v0 return-void :catchall_0 move-exception v1 monitor-exit v0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 throw v1 .end method