-keeppackagenames ir.metrix
-keep class ir.metrix.** { *; }
-keepclassmembers enum ir.metrix.** { *; }

-keep class * extends ir.metrix.internal.init.MetrixComponentInitializer {
    public void preInitialize(android.content.Context);
    public void postInitialize(android.content.Context);
}

# Keep Exception names
-keepnames class ir.metrix.** extends java.lang.Exception

# -- Moshi --
-dontwarn okio.**
-dontwarn javax.annotation.**
-keepclasseswithmembers class * {
    @com.squareup.moshi.* <methods>;
}
-keep @com.squareup.moshi.JsonQualifier interface *

-keep class **JsonAdapter {
    <init>(...);
    <fields>;
}
-keepnames @com.squareup.moshi.JsonClass class *

-dontwarn org.codehaus.mojo.animal_sniffer.*

# Fix application release build problem with R8
-keep class io.reactivex.rxjava3.disposables.RunnableDisposable { <init>(...); }
-keep class ir.metrix.internal.init.Initializer { *; }
-if class ir.metrix.internal.sentry.model.StackTraceModel
-keepnames class ir.metrix.internal.sentry.model.StackTraceModel
-if class ir.metrix.internal.sentry.model.StackTraceModel
-keep class ir.metrix.internal.sentry.model.StackTraceModelJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.internal.sentry.model.StackTraceModel
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.internal.sentry.model.StackTraceModel
-keepclassmembers class ir.metrix.internal.sentry.model.StackTraceModel {
    public synthetic <init>(java.util.List,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.internal.sentry.model.TagsModel
-keepnames class ir.metrix.internal.sentry.model.TagsModel
-if class ir.metrix.internal.sentry.model.TagsModel
-keep class ir.metrix.internal.sentry.model.TagsModelJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.internal.sentry.model.TagsModel
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.internal.sentry.model.TagsModel
-keepclassmembers class ir.metrix.internal.sentry.model.TagsModel {
    public synthetic <init>(java.lang.String,java.lang.String,java.lang.String,java.lang.Integer,java.lang.Integer,java.lang.String,java.lang.String,java.lang.String,java.lang.Boolean,java.lang.Integer,java.lang.Boolean,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.internal.sentry.model.ModulesModel
-keepnames class ir.metrix.internal.sentry.model.ModulesModel
-if class ir.metrix.internal.sentry.model.ModulesModel
-keep class ir.metrix.internal.sentry.model.ModulesModelJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.internal.sentry.model.ModulesModel
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.internal.sentry.model.ModulesModel
-keepclassmembers class ir.metrix.internal.sentry.model.ModulesModel {
    public synthetic <init>(java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.internal.sentry.model.SentryCrashModel
-keepnames class ir.metrix.internal.sentry.model.SentryCrashModel
-if class ir.metrix.internal.sentry.model.SentryCrashModel
-keep class ir.metrix.internal.sentry.model.SentryCrashModelJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.internal.sentry.model.SentryCrashModel
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.internal.sentry.model.SentryCrashModel
-keepclassmembers class ir.metrix.internal.sentry.model.SentryCrashModel {
    public synthetic <init>(java.lang.String,java.lang.String,ir.metrix.internal.sentry.model.ModulesModel,ir.metrix.internal.sentry.model.ContextModel,ir.metrix.internal.sentry.model.TagsModel,ir.metrix.internal.sentry.model.ExtrasModel,java.util.List,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.internal.ServerConfigModel
-keepnames class ir.metrix.internal.ServerConfigModel
-if class ir.metrix.internal.ServerConfigModel
-keep class ir.metrix.internal.ServerConfigModelJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.internal.ServerConfigModel
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.internal.ServerConfigModel
-keepclassmembers class ir.metrix.internal.ServerConfigModel {
    public synthetic <init>(int,int,int,int,int,boolean,ir.metrix.internal.utils.common.Time,int,int,ir.metrix.internal.utils.common.Time,java.lang.String,ir.metrix.internal.utils.common.Time,int,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.internal.sentry.model.DeviceModel
-keepnames class ir.metrix.internal.sentry.model.DeviceModel
-if class ir.metrix.internal.sentry.model.DeviceModel
-keep class ir.metrix.internal.sentry.model.DeviceModelJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.internal.sentry.model.DeviceModel
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.internal.sentry.model.DeviceModel
-keepclassmembers class ir.metrix.internal.sentry.model.DeviceModel {
    public synthetic <init>(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.Long,java.lang.Long,java.lang.Boolean,boolean,java.lang.Integer,java.lang.String,java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.internal.sentry.model.UserModel
-keepnames class ir.metrix.internal.sentry.model.UserModel
-if class ir.metrix.internal.sentry.model.UserModel
-keep class ir.metrix.internal.sentry.model.UserModelJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.internal.sentry.model.UserModel
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.internal.sentry.model.UserModel
-keepclassmembers class ir.metrix.internal.sentry.model.UserModel {
    public synthetic <init>(java.lang.String,java.lang.String,java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.internal.sentry.model.ExtrasModel
-keepnames class ir.metrix.internal.sentry.model.ExtrasModel
-if class ir.metrix.internal.sentry.model.ExtrasModel
-keep class ir.metrix.internal.sentry.model.ExtrasModelJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.internal.sentry.model.ExtrasModel
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.internal.sentry.model.ExtrasModel
-keepclassmembers class ir.metrix.internal.sentry.model.ExtrasModel {
    public synthetic <init>(java.lang.Integer,java.lang.Boolean,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.internal.sentry.model.FrameModel
-keepnames class ir.metrix.internal.sentry.model.FrameModel
-if class ir.metrix.internal.sentry.model.FrameModel
-keep class ir.metrix.internal.sentry.model.FrameModelJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.internal.sentry.model.FrameModel
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.internal.sentry.model.FrameModel
-keepclassmembers class ir.metrix.internal.sentry.model.FrameModel {
    public synthetic <init>(java.lang.String,java.lang.String,boolean,java.lang.String,int,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.internal.sentry.model.ContextModel
-keepnames class ir.metrix.internal.sentry.model.ContextModel
-if class ir.metrix.internal.sentry.model.ContextModel
-keep class ir.metrix.internal.sentry.model.ContextModelJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.internal.sentry.model.ContextModel
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.internal.sentry.model.ContextModel
-keepclassmembers class ir.metrix.internal.sentry.model.ContextModel {
    public synthetic <init>(ir.metrix.internal.sentry.model.SdkModel,ir.metrix.internal.sentry.model.AppModel,ir.metrix.internal.sentry.model.OSModel,ir.metrix.internal.sentry.model.DeviceModel,ir.metrix.internal.sentry.model.UserModel,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.internal.sentry.model.ExceptionModel
-keepnames class ir.metrix.internal.sentry.model.ExceptionModel
-if class ir.metrix.internal.sentry.model.ExceptionModel
-keep class ir.metrix.internal.sentry.model.ExceptionModelJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.internal.sentry.model.ExceptionModel
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.internal.sentry.model.ExceptionModel
-keepclassmembers class ir.metrix.internal.sentry.model.ExceptionModel {
    public synthetic <init>(java.lang.String,java.lang.String,java.lang.String,ir.metrix.internal.sentry.model.StackTraceModel,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.internal.sentry.model.SdkModel
-keepnames class ir.metrix.internal.sentry.model.SdkModel
-if class ir.metrix.internal.sentry.model.SdkModel
-keep class ir.metrix.internal.sentry.model.SdkModelJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.internal.sentry.model.SdkModel
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.internal.sentry.model.SdkModel
-keepclassmembers class ir.metrix.internal.sentry.model.SdkModel {
    public synthetic <init>(java.lang.String,int,java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.internal.sentry.model.OSModel
-keepnames class ir.metrix.internal.sentry.model.OSModel
-if class ir.metrix.internal.sentry.model.OSModel
-keep class ir.metrix.internal.sentry.model.OSModelJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.internal.sentry.model.OSModel
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.internal.sentry.model.OSModel
-keepclassmembers class ir.metrix.internal.sentry.model.OSModel {
    public synthetic <init>(java.lang.String,java.lang.String,int,java.lang.Boolean,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.internal.sentry.model.AppModel
-keepnames class ir.metrix.internal.sentry.model.AppModel
-if class ir.metrix.internal.sentry.model.AppModel
-keep class ir.metrix.internal.sentry.model.AppModelJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.internal.sentry.model.AppModel
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.internal.sentry.model.AppModel
-keepclassmembers class ir.metrix.internal.sentry.model.AppModel {
    public synthetic <init>(java.lang.String,java.lang.String,java.lang.Long,java.lang.String,java.lang.String,java.lang.Integer,java.lang.Integer,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.internal.network.ServerConfigResponseModel
-keepnames class ir.metrix.internal.network.ServerConfigResponseModel
-if class ir.metrix.internal.network.ServerConfigResponseModel
-keep class ir.metrix.internal.network.ServerConfigResponseModelJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}


