-keepclasseswithmembernames class * {
    native <methods>;
}
-keep class androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
    @androidx.annotation.Keep <methods>;
}
-keepclasseswithmembers class * {
    @androidx.annotation.Keep <fields>;
}
-keepclasseswithmembers class * {
    @androidx.annotation.Keep <init>(...);
}
# The following kotlin and java classes are used reflectively in the engine.
# That is why their class/field/methid names should be consistent in the runtime.
-keep class kotlin.Unit { *; }
-keep class kotlin.ranges.IntRange { *; }
-keep class java.util.List { *; }
-keep class java.util.ArrayList { *; }
-keep class java.util.Map { *; }
-keep class java.util.HashMap { *; }
-keep class java.util.Set { *; }
-keep class java.util.Iterator { *; }
-keep class java.nio.ByteBuffer { *; }
-keep class android.graphics.RectF { *; }
-keep class android.net.Uri { *; }
-keep class kotlin.Pair { *; }

# Referenced from OkHttp
-dontwarn org.bouncycastle.jsse.BCSSLParameters
-dontwarn org.bouncycastle.jsse.BCSSLSocket
-dontwarn org.bouncycastle.jsse.provider.BouncyCastleJsseProvider
-dontwarn org.conscrypt.Conscrypt$Version
-dontwarn org.conscrypt.Conscrypt
-dontwarn org.conscrypt.ConscryptHostnameVerifier
-dontwarn org.openjsse.javax.net.ssl.SSLParameters
-dontwarn org.openjsse.javax.net.ssl.SSLSocket
-dontwarn org.openjsse.net.ssl.OpenJSSE
