-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>(...); }
-if class ir.metrix.messaging.SessionStopParcelEvent
-keepnames class ir.metrix.messaging.SessionStopParcelEvent
-if class ir.metrix.messaging.SessionStopParcelEvent
-keep class ir.metrix.messaging.SessionStopParcelEventJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.messaging.SessionStopParcelEvent
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.messaging.SessionStopParcelEvent
-keepclassmembers class ir.metrix.messaging.SessionStopParcelEvent {
    public synthetic <init>(ir.metrix.messaging.EventType,java.lang.String,java.lang.String,int,ir.metrix.internal.utils.common.Time,java.util.List,long,java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.messaging.Revenue
-keepnames class ir.metrix.messaging.Revenue
-if class ir.metrix.messaging.Revenue
-keep class ir.metrix.messaging.RevenueJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.messaging.Revenue
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.messaging.Revenue
-keepclassmembers class ir.metrix.messaging.Revenue {
    public synthetic <init>(ir.metrix.messaging.EventType,java.lang.String,java.lang.String,int,ir.metrix.internal.utils.common.Time,ir.metrix.messaging.SendPriority,java.lang.String,double,java.lang.String,ir.metrix.messaging.RevenueCurrency,java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

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

-if class ir.metrix.messaging.SystemEvent
-keepnames class ir.metrix.messaging.SystemEvent
-if class ir.metrix.messaging.SystemEvent
-keep class ir.metrix.messaging.SystemEventJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.messaging.SystemEvent
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.messaging.SystemEvent
-keepclassmembers class ir.metrix.messaging.SystemEvent {
    public synthetic <init>(ir.metrix.messaging.EventType,java.lang.String,ir.metrix.internal.utils.common.Time,ir.metrix.messaging.SendPriority,ir.metrix.messaging.MetrixMessage,java.util.Map,java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

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

-if class ir.metrix.session.SessionActivity
-keepnames class ir.metrix.session.SessionActivity
-if class ir.metrix.session.SessionActivity
-keep class ir.metrix.session.SessionActivityJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class ir.metrix.messaging.SessionStopEvent
-keepnames class ir.metrix.messaging.SessionStopEvent
-if class ir.metrix.messaging.SessionStopEvent
-keep class ir.metrix.messaging.SessionStopEventJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.messaging.SessionStopEvent
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.messaging.SessionStopEvent
-keepclassmembers class ir.metrix.messaging.SessionStopEvent {
    public synthetic <init>(ir.metrix.messaging.EventType,java.lang.String,java.lang.String,int,ir.metrix.internal.utils.common.Time,ir.metrix.messaging.SendPriority,java.util.List,long,java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

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

-if class ir.metrix.messaging.CustomEvent
-keepnames class ir.metrix.messaging.CustomEvent
-if class ir.metrix.messaging.CustomEvent
-keep class ir.metrix.messaging.CustomEventJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.messaging.CustomEvent
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.messaging.CustomEvent
-keepclassmembers class ir.metrix.messaging.CustomEvent {
    public synthetic <init>(ir.metrix.messaging.EventType,java.lang.String,java.lang.String,int,ir.metrix.internal.utils.common.Time,ir.metrix.messaging.SendPriority,java.lang.String,java.util.Map,java.util.Map,java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.messaging.ParcelRevenue
-keepnames class ir.metrix.messaging.ParcelRevenue
-if class ir.metrix.messaging.ParcelRevenue
-keep class ir.metrix.messaging.ParcelRevenueJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.messaging.ParcelRevenue
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.messaging.ParcelRevenue
-keepclassmembers class ir.metrix.messaging.ParcelRevenue {
    public synthetic <init>(ir.metrix.messaging.EventType,java.lang.String,java.lang.String,int,ir.metrix.internal.utils.common.Time,java.lang.String,double,java.lang.String,ir.metrix.messaging.RevenueCurrency,java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.messaging.SystemParcelEvent
-keepnames class ir.metrix.messaging.SystemParcelEvent
-if class ir.metrix.messaging.SystemParcelEvent
-keep class ir.metrix.messaging.SystemParcelEventJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.messaging.SystemParcelEvent
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.messaging.SystemParcelEvent
-keepclassmembers class ir.metrix.messaging.SystemParcelEvent {
    public synthetic <init>(ir.metrix.messaging.EventType,java.lang.String,ir.metrix.internal.utils.common.Time,ir.metrix.messaging.MetrixMessage,java.util.Map,java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

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

-if class ir.metrix.messaging.CustomParcelEvent
-keepnames class ir.metrix.messaging.CustomParcelEvent
-if class ir.metrix.messaging.CustomParcelEvent
-keep class ir.metrix.messaging.CustomParcelEventJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class ir.metrix.messaging.CustomParcelEvent
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class ir.metrix.messaging.CustomParcelEvent
-keepclassmembers class ir.metrix.messaging.CustomParcelEvent {
    public synthetic <init>(ir.metrix.messaging.EventType,java.lang.String,java.lang.String,int,ir.metrix.internal.utils.common.Time,java.lang.String,java.util.Map,java.util.Map,java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class ir.metrix.SDKSignature
-keepnames class ir.metrix.SDKSignature
-if class ir.metrix.SDKSignature
-keep class ir.metrix.SDKSignatureJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}


