# Preserve Android / java classes
-keep class * extends java.util.ListResourceBundle {
    protected Object[][] getContents();
}
-keep class sun.misc.Unsafe { *; }

-keepnames class * implements android.os.Parcelable {
    public static final ** CREATOR;
}

-keepattributes *Annotation*,EnclosingMethod,Signature
-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
}


-keepclassmembers class * implements java.io.Serializable {
    static final long serialVersionUID;
    private static final java.io.ObjectStreamField[] serialPersistentFields;
    private void writeObject(java.io.ObjectOutputStream);
    private void readObject(java.io.ObjectInputStream);
    java.lang.Object writeReplace();
    java.lang.Object readResolve();
}

-keepattributes JavascriptInterface
-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}
-keep public class android.webkit.JavascriptInterface {}
-keep class androidx.core.app.CoreComponentFactory { *; }

-keepattributes Signature

-keepattributes Annotation
-keep class javax.annotation.** { *; }
-dontwarn javax.annotation.**

-dontnote com.google.gson.**
-dontnote com.google.android.gms.ads.**
-dontnote com.google.android.**
-dontnote com.google.ads.**
#....................................#
-keep class com.huawei.hms.ads.** {*; }
-keep interface com.huawei.hms.ads.** {*; }

-keeppackagenames com.mngads.**


# Preserve MNG classes
-keep class com.mngads.exceptions.** { *; }
-keep class com.mngads.listener.** { *; }
-keep class com.mngads.service.** { *; }
-keep class com.mngads.util.MNGAdSize { *; }
-keep class com.mngads.listener.CriteoBannerListener { *; }
-keep class com.mngads.listener.CriteoInterstitialListener { *; }
-keep class com.mngads.listener.CriteoNativeAdListener { *; }
-keep class com.mngads.util.MAdvertiseAssetsType { *; }
-keep class com.mngads.util.MNGFrame { *; }
-keep class com.mngads.util.MNGServer { *; }
-keep class com.mngads.util.MNGStackHB { *; }
-keep class com.mngads.util.MAdvertiseInfeedFrame { *; }
-keep class com.mngads.util.MNGGender { *; }
-keep class com.mngads.util.MNGPreference { *; }
-keep class com.mngads.util.MNGPriceType { *; }
-keep class com.mngads.util.MNGDisplayType { *; }
-keep class com.mngads.util.MNGUtils { *; }
-keep class com.mngads.listener.MNGNativeObjectListener { *; }
-keep class com.mngads.util.MNGUtilsCmp{ *; }
-keep class com.mngads.MNGAdsFactory{ *; }
-keep class com.mngads.MNGAdsAdapter{ *; }
-keep class com.mngads.MNGNativeObject{ *; }
-keep class com.mngads.models.*{ *; }
-keep class com.mngads.MAdvertiseRewardedVideo { *; }
-keep class com.mngads.views.MAdvertiseNativeContainer { *; }
-keep class com.mngads.enumeration.BlueStackAdapterInitializationState { *;}
-keep interface com.mngads.nativead.NativeAdImpressionListener { *;}
-dontwarn com.mngads.**
#....................................#

-keep class **.R$* {
    <fields>;
}

# Preserve MNG Ad Server classes
-keep class com.mngads.sdk.nativead.**{ *; }
-keep class com.mngads.sdk.listener.**{ *; }
-keep class com.mngads.sdk.perf.listener.**{ *; }
-keep class com.mngads.sdk.perf.util.MNGAdSize{ *; }
-keep class com.mngads.sdk.perf.umoove.**{ *; }
-keep class com.mngads.sdk.perf.view.MNGInAppWebView{ *; }
-keep class com.mngads.sdk.perf.interstitial.MNGInterstitialAdActivity{ *; }
-keep class com.mngads.sdk.perf.video.MNGVideoPlayerActivity{ *; }

#....................................#


# Preserve GMS classes
-keep class com.google.android.gms.** { *;}
-dontwarn com.google.android.gms.**
-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
    public static final *** NULL;
}
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
    @com.google.android.gms.common.annotation.KeepName *;
}
#....................................#


# Preserve B4S classes
-keep class com.ezeeworld.b4s.** { *; }
-dontwarn com.ezeeworld.b4s.**
-dontwarn retrofit2.**
-dontwarn com.fasterxml.**
#....................................#


# Preserve Amazon classes
-keep class com.amazon.** { *; }
-dontwarn com.amazon.**
#....................................#


# Preserve Flurry classes
-keep class com.flurry.** { *; }
-dontwarn com.flurry.**
#....................................#


# Preserve Smart Ad server classes
-keepclassmembers class com.smartadserver.android.library.** {
    @android.webkit.JavascriptInterface <methods>;
}
-keep class com.smartadserver.** { *; }
-dontwarn com.smartadserver.**
#....................................#


# Preserve Facebook classes
-keep class com.facebook.** { *; }
-dontwarn com.facebook.**
#....................................#


# Preserve Umoove classes
-keep class com.umoove.all.**{ *; }
-dontwarn com.umoove.all.**
#....................................#


# Preserve Presage classes
-dontnote io.presage.**
-dontwarn shared_presage.**
-dontwarn org.codehaus.**

-keepattributes Signature

-keep class shared_presage.** { *; }
-keep class io.presage.** { *; }
-keepclassmembers class io.presage.** {
 *;
}

# ---- MOAT

-keep class com.moat.** { *; }
-dontwarn com.moat.**

# ---- OKHTTP
-dontnote okhttp3.**
-dontnote okio.**
-dontwarn okhttp3.**
-dontwarn okio.**

-dontwarn javax.annotation.Nullable
-dontwarn javax.annotation.ParametersAreNonnullByDefault

-dontnote sun.misc.Unsafe
-dontnote android.net.http.*

-dontnote org.apache.commons.codec.**
-dontnote org.apache.http.**

-dontwarn org.apache.commons.collections.BeanMap
-dontwarn java.beans.**
#....................................#


# Preserve Mopub classes
-keep class com.mopub.mobileads.MoPubView { *; }

-keepclassmembers class com.mopub.** { public *; }
-keep public class com.mopub.**
#....................................#

-keep class com.google.android.gms.common.GooglePlayServicesUtil {*;}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient {*;}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info {*;}


# Preserve AdColony classes
-keepclassmembers class com.adcolony.sdk.ADCNative** {
    *;
 }
-keep class com.adcolony.sdk** {
    *;
 }
#....................................#

# Preserve OM SDK classes
-keep class com.iab.omid** {
    *;
}
#....................................#

# Preserve Data location SDK classes
-keep class com.madvertiselocation {
    *;
}



