# The proguard configuration file for the following section is /home/jenkins/.jenkins/workspace/app-branded-nayestane/app-android-launcher/build/intermediates/default_proguard_files/global/proguard-android.txt-7.4.0
# This is a configuration file for ProGuard.
# http://proguard.sourceforge.net/index.html#manual/usage.html
#
# Starting with version 2.2 of the Android plugin for Gradle, this file is distributed together with
# the plugin and unpacked at build-time. The files in $ANDROID_HOME are no longer maintained and
# will be ignored by new version of the Android plugin for Gradle.

# Optimization is turned off by default. Dex does not like code run
# through the ProGuard optimize steps (and performs some
# of these optimizations on its own).
# Note that if you want to enable optimization, you cannot just
# include optimization flags in your own project configuration file;
# instead you will need to point to the
# "proguard-android-optimize.txt" file instead of this one from your
# project.properties file.
-dontoptimize

-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-verbose

# Preserve some attributes that may be required for reflection.
-keepattributes AnnotationDefault,
                EnclosingMethod,
                InnerClasses,
                RuntimeVisibleAnnotations,
                RuntimeVisibleParameterAnnotations,
                RuntimeVisibleTypeAnnotations,
                Signature

-keep public class com.google.vending.licensing.ILicensingService
-keep public class com.android.vending.licensing.ILicensingService
-keep public class com.google.android.vending.licensing.ILicensingService
-dontnote com.android.vending.licensing.ILicensingService
-dontnote com.google.vending.licensing.ILicensingService
-dontnote com.google.android.vending.licensing.ILicensingService

# For native methods, see http://proguard.sourceforge.net/manual/examples.html#native
-keepclasseswithmembernames,includedescriptorclasses class * {
    native <methods>;
}

# Keep setters in Views so that animations can still work.
-keepclassmembers public class * extends android.view.View {
    void set*(***);
    *** get*();
}

# We want to keep methods in Activity that could be used in the XML attribute onClick.
-keepclassmembers class * extends android.app.Activity {
    public void *(android.view.View);
}

# For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations
-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

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

# Preserve annotated Javascript interface methods.
-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}

# The support libraries contains references to newer platform versions.
# Don't warn about those in case this app is linking against an older
# platform version. We know about them, and they are safe.
-dontnote android.support.**
-dontnote androidx.**
-dontwarn android.support.**
-dontwarn androidx.**

# This class is deprecated, but remains for backward compatibility.
-dontwarn android.util.FloatMath

# Understand the @Keep support annotation.
-keep class android.support.annotation.Keep
-keep class androidx.annotation.Keep

-keep @android.support.annotation.Keep class * {*;}
-keep @androidx.annotation.Keep class * {*;}

-keepclasseswithmembers class * {
    @android.support.annotation.Keep <methods>;
}

-keepclasseswithmembers class * {
    @androidx.annotation.Keep <methods>;
}

-keepclasseswithmembers class * {
    @android.support.annotation.Keep <fields>;
}

-keepclasseswithmembers class * {
    @androidx.annotation.Keep <fields>;
}

-keepclasseswithmembers class * {
    @android.support.annotation.Keep <init>(...);
}

-keepclasseswithmembers class * {
    @androidx.annotation.Keep <init>(...);
}

# These classes are duplicated between android.jar and org.apache.http.legacy.jar.
-dontnote org.apache.http.**
-dontnote android.net.http.**

# These classes are duplicated between android.jar and core-lambda-stubs.jar.
-dontnote java.lang.invoke.**

# End of content from /home/jenkins/.jenkins/workspace/app-branded-nayestane/app-android-launcher/build/intermediates/default_proguard_files/global/proguard-android.txt-7.4.0
# The proguard configuration file for the following section is /home/jenkins/.jenkins/workspace/app-branded-nayestane/app-android-launcher/proguard-rules.pro
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in /home/mike/Android/Sdk/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# Add any project specific keep options here:

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

# umDatabase entities
-keep public class com.ustadmobile.lib.db.entities.**{
       *;
}
-keep public class com.ustadmobile.lib.db.sync.entities.**{
       *;
}
-keep public class com.ustadmobile.core.db.**{
    public <init>(...);
}
-keep public class com.ustadmobile.core.controller.IndexLog{
       *;
}
-keep public class com.ustadmobile.core.controller.IndexLog$IndexEntry{
       *;
}

-keep public class com.toughra.ustadmobile.BuildConfig
-keep public class com.ustadmobile.codec2.Codec2{
        *;
}

#content editor
-keep public class com.ustadmobile.port.android.umeditor.**{
       *;
}

-keep public class com.ustadmobile.core.contentformats.metadata.*{
    *;
}

 #
 ###################################################################################################
 #### OKHttp3 rules as per
 ## https://github.com/square/okhttp/blob/master/okhttp/src/main/resources/META-INF/proguard/okhttp3.pro
 ###################################################################################################
 ## JSR 305 annotations are for embedding nullability information.
-dontwarn javax.annotation.**
 #
 ## A resource is loaded with a relative path so the package of this class must be preserved.
-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase
 #
 ## Animal Sniffer compileOnly dependency to ensure APIs are compatible with older versions of Java.
-dontwarn org.codehaus.mojo.animal_sniffer.*
 #
 ## OkHttp platform used only on JVM and when Conscrypt dependency is available.
-dontwarn okhttp3.internal.platform.ConscryptPlatform
 ####

 # Prevent proguard from stripping interface information from TypeAdapterFactory,
 # JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter)
 -keep class * implements com.google.gson.TypeAdapterFactory
 -keep class * implements com.google.gson.JsonSerializer
 -keep class * implements com.google.gson.JsonDeserializer

# End of content from /home/jenkins/.jenkins/workspace/app-branded-nayestane/app-android-launcher/proguard-rules.pro
# The proguard configuration file for the following section is /home/jenkins/.jenkins/workspace/app-branded-nayestane/app-android-launcher/build/intermediates/aapt_proguard_file/release/aapt_rules.txt
-keep class androidx.core.app.CoreComponentFactory { <init>(); }
-keep class androidx.core.content.FileProvider { <init>(); }
-keep class androidx.room.MultiInstanceInvalidationService { <init>(); }
-keep class androidx.startup.InitializationProvider { <init>(); }
-keep class androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryChargingProxy { <init>(); }
-keep class androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryNotLowProxy { <init>(); }
-keep class androidx.work.impl.background.systemalarm.ConstraintProxy$NetworkStateProxy { <init>(); }
-keep class androidx.work.impl.background.systemalarm.ConstraintProxy$StorageNotLowProxy { <init>(); }
-keep class androidx.work.impl.background.systemalarm.ConstraintProxyUpdateReceiver { <init>(); }
-keep class androidx.work.impl.background.systemalarm.RescheduleReceiver { <init>(); }
-keep class androidx.work.impl.background.systemalarm.SystemAlarmService { <init>(); }
-keep class androidx.work.impl.background.systemjob.SystemJobService { <init>(); }
-keep class androidx.work.impl.diagnostics.DiagnosticsReceiver { <init>(); }
-keep class androidx.work.impl.foreground.SystemForegroundService { <init>(); }
-keep class androidx.work.impl.utils.ForceStopRunnable$BroadcastReceiver { <init>(); }
-keep class com.google.android.play.core.assetpacks.AssetPackExtractionService { <init>(); }
-keep class com.google.android.play.core.assetpacks.ExtractionForegroundService { <init>(); }
-keep class com.google.android.play.core.common.PlayCoreDialogWrapperActivity { <init>(); }
-keep class com.google.android.play.core.missingsplits.PlayCoreMissingSplitsActivity { <init>(); }
-keep class com.squareup.picasso.PicassoProvider { <init>(); }
-keep class com.ustadmobile.port.android.App { <init>(); }
-keep class com.ustadmobile.port.android.panic.ExitActivity { <init>(); }
-keep class com.ustadmobile.port.android.panic.NotepadActivity { <init>(); }
-keep class com.ustadmobile.port.android.panic.PanicConfigActivity { <init>(); }
-keep class com.ustadmobile.port.android.panic.PanicResponderActivity { <init>(); }
-keep class com.ustadmobile.port.android.view.AboutActivity { <init>(); }
-keep class com.ustadmobile.port.android.view.EpubContentActivity { <init>(); }
-keep class com.ustadmobile.port.android.view.MainActivity { <init>(); }
-keep class com.ustadmobile.port.android.view.OnBoardingActivity { <init>(); }
-keep class com.ustadmobile.port.android.view.SplashScreenActivity { <init>(); }
-keep class org.acra.attachment.AcraContentProvider { <init>(); }
-keep class org.acra.dialog.CrashReportDialog { <init>(); }
-keep class org.acra.sender.JobSenderService { <init>(); }
-keep class org.acra.sender.LegacySenderService { <init>(); }
-keep class android.widget.Space { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.appcompat.app.AlertController$RecycleListView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.appcompat.view.menu.ActionMenuItemView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.appcompat.view.menu.ExpandedMenuView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.appcompat.view.menu.ListMenuItemView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.appcompat.widget.ActionBarContainer { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.appcompat.widget.ActionBarContextView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.appcompat.widget.ActionBarOverlayLayout { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.appcompat.widget.ActionMenuView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.appcompat.widget.ActivityChooserView$InnerLayout { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.appcompat.widget.AlertDialogLayout { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.appcompat.widget.AppCompatButton { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.appcompat.widget.AppCompatImageView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.appcompat.widget.AppCompatTextView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.appcompat.widget.ButtonBarLayout { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.appcompat.widget.ContentFrameLayout { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.appcompat.widget.DialogTitle { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.appcompat.widget.FitWindowsFrameLayout { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.appcompat.widget.FitWindowsLinearLayout { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.appcompat.widget.LinearLayoutCompat { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.appcompat.widget.SearchView { <init>(android.content.Context); }

-keep class androidx.appcompat.widget.SearchView$SearchAutoComplete { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.appcompat.widget.Toolbar { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.appcompat.widget.ViewStubCompat { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.cardview.widget.CardView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.constraintlayout.widget.Barrier { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.constraintlayout.widget.ConstraintLayout { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.constraintlayout.widget.Guideline { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.coordinatorlayout.widget.CoordinatorLayout { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.core.widget.NestedScrollView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.drawerlayout.widget.DrawerLayout { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.fragment.app.FragmentContainerView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.legacy.widget.Space { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.navigation.fragment.NavHostFragment { <init>(); }

-keep class androidx.recyclerview.widget.RecyclerView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class androidx.viewpager2.widget.ViewPager2 { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.ernestoyaquello.dragdropswiperecyclerview.DragDropSwipeRecyclerView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.github.mikephil.charting.charts.LineChart { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.exoplayer2.ui.AspectRatioFrameLayout { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.exoplayer2.ui.DefaultTimeBar { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.exoplayer2.ui.PlayerControlView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.exoplayer2.ui.PlayerView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.exoplayer2.ui.SubtitleView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.exoplayer2.ui.TrackSelectionView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.material.appbar.AppBarLayout { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.material.appbar.CollapsingToolbarLayout { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.material.appbar.MaterialToolbar { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.material.bottomnavigation.BottomNavigationView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.material.button.MaterialButton { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.material.button.MaterialButtonToggleGroup { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.material.chip.Chip { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.material.chip.ChipGroup { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.material.datepicker.MaterialCalendarGridView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.material.imageview.ShapeableImageView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.material.internal.BaselineLayout { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.material.internal.CheckableImageButton { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.material.internal.NavigationMenuItemView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.material.internal.NavigationMenuView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.material.navigation.NavigationView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.material.progressindicator.CircularProgressIndicator { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.material.snackbar.Snackbar$SnackbarLayout { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.material.snackbar.SnackbarContentLayout { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.material.switchmaterial.SwitchMaterial { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.material.tabs.TabLayout { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.material.textfield.TextInputEditText { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.material.textfield.TextInputLayout { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.material.textview.MaterialTextView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.material.timepicker.ChipTextInputComboView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.material.timepicker.ClockFaceView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.material.timepicker.ClockHandView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.google.android.material.timepicker.TimePickerView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.pdfview.PDFView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.ustadmobile.port.android.view.AccountListFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.BitmaskEditFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.ChatDetailFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.ChatListFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.ClazzAssignmentDetailFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.ClazzAssignmentDetailStudentProgressFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.ClazzAssignmentEditFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.ClazzDetailFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.ClazzEditFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.ClazzEnrolmentEditFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.ClazzEnrolmentListFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.ClazzListFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.ClazzLogEditAttendanceFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.ClazzLogEditFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.ContentEntryDetailAttemptsListFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.ContentEntryDetailFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.ContentEntryDetailOverviewFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.ContentEntryEdit2Fragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.ContentEntryImportLinkFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.ContentEntryList2Fragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.CourseDiscussionDetailFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.CourseDiscussionEditFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.CourseGroupSetDetailFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.CourseGroupSetEditFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.CourseGroupSetListFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.CourseTerminologyEditFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.CourseTerminologyListFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.CustomFieldAutoCompleteTextView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.ustadmobile.port.android.view.DateRangeFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.DiscussionPostDetailFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.DiscussionPostEditFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.DiscussionTopicDetailFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.DiscussionTopicEditFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.DownloadProgressView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.ustadmobile.port.android.view.DownloadStatusButton { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.ustadmobile.port.android.view.ErrorReportFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.HolidayCalendarEditFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.HolidayCalendarListFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.HolidayEditFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.HtmlTextViewFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.IdOptionAutoCompleteTextView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.ustadmobile.port.android.view.InviteViaLinkFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.JoinWithCodeFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.LanguageEditFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.LanguageListFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.LearnerGroupMemberListFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.LeavingReasonEditFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.LeavingReasonListFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.Login2Fragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.ModuleCourseBlockEditFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.PDFContentFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.PanicButtonSettingsFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.ParentalConsentManagementFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.PersonAccountEditFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.PersonDetailFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.PersonEditFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.PersonListFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.RedirectFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.RegisterAgeRedirectFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.RegisterMinorWaitForParentFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.ReportDetailFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.ReportEditFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.ReportFilterEditFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.ReportListFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.ReportTemplateListFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.ScheduleEditFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.SchoolDetailFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.SchoolDetailOverviewFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.SchoolEditFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.SchoolListFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.SchoolMemberListFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.ScopedGrantDetailFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.ScopedGrantEditFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.ScopedGrantListFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.SelectExtractFileFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.SelectFileFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.SelectFolderFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.SessionListFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.SettingsFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.SiteDetailFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.SiteEditFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.SiteEnterLinkFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.SiteTermsDetailFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.SiteTermsEditFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.StatementListViewFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.StorageOptionsAutocompleteTextView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.ustadmobile.port.android.view.TextAssignmentEditFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.TextCourseBlockEditFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.TimeZoneListFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.TocListView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.ustadmobile.port.android.view.VerbEntityListFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.VerticalTextView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.ustadmobile.port.android.view.VideoContentFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.WebChunkFragment { <init>(...); }

-keep class com.ustadmobile.port.android.view.XapiChartView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class com.ustadmobile.port.android.view.XapiPackageContentFragment { <init>(...); }

-keep class de.hdodenhof.circleimageview.CircleImageView { <init>(android.content.Context, android.util.AttributeSet); }

-keep class ir.hamsaa.persiandatepicker.PersianDatePicker { <init>(android.content.Context, android.util.AttributeSet); }

-keep class ir.hamsaa.persiandatepicker.view.PersianNumberPicker { <init>(android.content.Context, android.util.AttributeSet); }

-keep class org.wordpress.aztec.AztecText { <init>(android.content.Context, android.util.AttributeSet); }

-keep class org.wordpress.aztec.source.SourceViewEditText { <init>(android.content.Context, android.util.AttributeSet); }

-keep class org.wordpress.aztec.toolbar.AztecToolbar { <init>(android.content.Context, android.util.AttributeSet); }

-keep class org.wordpress.aztec.toolbar.RippleToggleButton { <init>(android.content.Context, android.util.AttributeSet); }


# End of content from /home/jenkins/.jenkins/workspace/app-branded-nayestane/app-android-launcher/build/intermediates/aapt_proguard_file/release/aapt_rules.txt
# The proguard configuration file for the following section is /home/jenkins/.jenkins/workspace/app-branded-nayestane/sharedse/build/intermediates/consumer_proguard_dir/release/lib0/proguard.txt
#
# BleProxyResponder requires reflection based access to the HTTPSession headers field so it can
# be serialized and sent over BLE.
#
-keepclassmembernames class fi.iki.elonen.NanoHTTPD$HTTPSession {
java.util.Map headers; 
}

-keep class com.ustadmobile.sharedse.network.ContainerDownloadManagerImpl$MutableLiveDataWithRef {
    ** reference;
}

# End of content from /home/jenkins/.jenkins/workspace/app-branded-nayestane/sharedse/build/intermediates/consumer_proguard_dir/release/lib0/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.jenkins/workspace/app-branded-nayestane/core/build/intermediates/consumer_proguard_dir/release/lib0/proguard.txt

#
# These classes are serialized using Gson, hence fields must not be obfuscated
-keep public class com.ustadmobile.core.contentformats.xapi.*{
    <fields>;
}

-keep public class com.ustadmobile.core.contentformats.metadata.*{
    *;
}

# LongWrapper is serialized and deserialized with Gson, but is not itself an entity so we need to
# explicitly exempt it from obfuscation
-keep public class com.ustadmobile.core.util.LongWrapper {
    *;
}

# Prevent proguard from stripping interface information from TypeAdapter, TypeAdapterFactory,
# JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter)
# as per https://github.com/google/gson/blob/master/examples/android-proguard-example/proguard.cfg
-keep class * extends com.google.gson.TypeAdapter
-keep class * implements com.google.gson.TypeAdapterFactory
-keep class * implements com.google.gson.JsonSerializer
-keep class * implements com.google.gson.JsonDeserializer

#Keep anything with the Serializable annotation. We are using Gson to avoid kotlinx serialization
# errors, but GSON requires classes to be exempted from obfuscation
-keep @kotlinx.serialization.Serializable class * {
    *;
}

# End of content from /home/jenkins/.jenkins/workspace/app-branded-nayestane/core/build/intermediates/consumer_proguard_dir/release/lib0/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/4ffe65ae81fb343cbd8897cf9b6f2a68/transformed/databinding-runtime-7.4.0/proguard.txt
-dontwarn androidx.databinding.ViewDataBinding
-dontwarn androidx.databinding.ViewDataBinding$LiveDataListener

# instant apps load these via reflection so we need to keep them.
-keep public class * extends androidx.databinding.DataBinderMapper


# End of content from /home/jenkins/.gradle/caches/transforms-3/4ffe65ae81fb343cbd8897cf9b6f2a68/transformed/databinding-runtime-7.4.0/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/b63684652a8b12c03ab6545747b701e9/transformed/door-runtime-android-0.0.63l/proguard.txt
# EntityAck is sent to the server to acknowledge receipt of entities, but is not itself an entity
# It must not be obfuscated.
-keep public class com.ustadmobile.door.EntityAck {
    *;
}

#
-keep public class * extends com.ustadmobile.door.ext.DoorDatabaseMetadata {
    *;
}

# End of content from /home/jenkins/.gradle/caches/transforms-3/b63684652a8b12c03ab6545747b701e9/transformed/door-runtime-android-0.0.63l/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/348802ccf70b9c9d65f847aa5442f110/transformed/rules/lib/META-INF/proguard/ktor.pro
# Most of volatile fields are updated with AtomicFU and should not be mangled/removed
-keepclassmembers class io.ktor.** {
    volatile <fields>;
}

-keepclassmembernames class io.ktor.** {
    volatile <fields>;
}

# client engines are loaded using ServiceLoader so we need to keep them
-keep class io.ktor.client.engine.** implements io.ktor.client.HttpClientEngineContainer


# End of content from /home/jenkins/.gradle/caches/transforms-3/348802ccf70b9c9d65f847aa5442f110/transformed/rules/lib/META-INF/proguard/ktor.pro
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/fdd8c3f58059be2c4b55834adb8d6da0/transformed/acra-core-5.9.6/proguard.txt
# Restore some Source file names and restore approximate line numbers in the stack traces,
# otherwise the stack traces are pretty useless
-keepattributes SourceFile,LineNumberTable

# ACRA loads Plugins using reflection
-keep class * implements org.acra.plugins.Plugin {*;}

# ACRA uses enum fields in json
-keep enum org.acra.** {*;}

# autodsl accesses constructors using reflection
-keepclassmembers class * implements org.acra.config.Configuration { <init>(...); }

# ACRA creates a proxy for this interface
-keep interface org.acra.ErrorReporter

-dontwarn android.support.**

-dontwarn com.faendir.kotlin.autodsl.DslInspect
-dontwarn com.faendir.kotlin.autodsl.DslMandatory
-dontwarn com.google.auto.service.AutoService
# End of content from /home/jenkins/.gradle/caches/transforms-3/fdd8c3f58059be2c4b55834adb8d6da0/transformed/acra-core-5.9.6/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/dd4d5ebafca629669220a1dd535d41bd/transformed/picasso-2.8/proguard.txt
### OKHTTP

# Platform calls Class.forName on types which do not exist on Android to determine platform.
-dontnote okhttp3.internal.Platform


### OKIO

# java.nio.file.* usage which cannot be used at runtime. Animal sniffer annotation.
-dontwarn okio.Okio
# JDK 7-only method which is @hide on Android. Animal sniffer annotation.
-dontwarn okio.DeflaterSink

# End of content from /home/jenkins/.gradle/caches/transforms-3/dd4d5ebafca629669220a1dd535d41bd/transformed/picasso-2.8/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/0f70062ac21b90fc0836836b8719d82d/transformed/rules/lib/META-INF/proguard/okhttp3.pro
# JSR 305 annotations are for embedding nullability information.
-dontwarn javax.annotation.**

# A resource is loaded with a relative path so the package of this class must be preserved.
-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase

# Animal Sniffer compileOnly dependency to ensure APIs are compatible with older versions of Java.
-dontwarn org.codehaus.mojo.animal_sniffer.*

# OkHttp platform used only on JVM and when Conscrypt dependency is available.
-dontwarn okhttp3.internal.platform.ConscryptPlatform

# End of content from /home/jenkins/.gradle/caches/transforms-3/0f70062ac21b90fc0836836b8719d82d/transformed/rules/lib/META-INF/proguard/okhttp3.pro
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/8737086402aaaf1f2a80edd8cfb40c38/transformed/rules/lib/META-INF/proguard/okio.pro
# Animal Sniffer compileOnly dependency to ensure APIs are compatible with older versions of Java.
-dontwarn org.codehaus.mojo.animal_sniffer.*

# End of content from /home/jenkins/.gradle/caches/transforms-3/8737086402aaaf1f2a80edd8cfb40c38/transformed/rules/lib/META-INF/proguard/okio.pro
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/182914ffc05bc94b8f1f5c8a10f5e7e6/transformed/navigation-ui-2.5.2/proguard.txt
# Copyright (C) 2019 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# setProgress is called via an ObjectAnimator in AbstractAppBarOnDestinationChangedListener
-keepclassmembers class androidx.appcompat.graphics.drawable.DrawerArrowDrawable {
    void setProgress(float);
}

# End of content from /home/jenkins/.gradle/caches/transforms-3/182914ffc05bc94b8f1f5c8a10f5e7e6/transformed/navigation-ui-2.5.2/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/8e9f69f4d0f908eaa2732bfc8d57f822/transformed/material-1.6.1/proguard.txt
# Copyright (C) 2015 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# CoordinatorLayout resolves the behaviors of its child components with reflection.
-keep public class * extends androidx.coordinatorlayout.widget.CoordinatorLayout$Behavior {
    public <init>(android.content.Context, android.util.AttributeSet);
    public <init>();
}

# Make sure we keep annotations for CoordinatorLayout's DefaultBehavior
-keepattributes RuntimeVisible*Annotation*

# Copyright (C) 2018 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# AppCompatViewInflater reads the viewInflaterClass theme attribute which then
# reflectively instantiates MaterialComponentsViewInflater using the no-argument
# constructor. We only need to keep this constructor and the class name if
# AppCompatViewInflater is also being kept.
-if class androidx.appcompat.app.AppCompatViewInflater
-keep class com.google.android.material.theme.MaterialComponentsViewInflater {
    <init>();
}


# End of content from /home/jenkins/.gradle/caches/transforms-3/8e9f69f4d0f908eaa2732bfc8d57f822/transformed/material-1.6.1/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/784b5e164b9008bc88f7149edc61bf16/transformed/appcompat-1.5.1/proguard.txt
# Copyright (C) 2018 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# aapt is not able to read app::actionViewClass and app:actionProviderClass to produce proguard
# keep rules. Add a commonly used SearchView to the keep list until b/109831488 is resolved.
-keep class androidx.appcompat.widget.SearchView { <init>(...); }

# Never inline methods, but allow shrinking and obfuscation.
-keepclassmembernames,allowobfuscation,allowshrinking class androidx.appcompat.widget.AppCompatTextViewAutoSizeHelper$Impl* {
  <methods>;
}

# End of content from /home/jenkins/.gradle/caches/transforms-3/784b5e164b9008bc88f7149edc61bf16/transformed/appcompat-1.5.1/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/d5e2ed87cbc739ec8ccc5d886391db48/transformed/fragment-1.5.3/proguard.txt
# Copyright (C) 2020 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# The default FragmentFactory creates Fragment instances using reflection
-if public class ** extends androidx.fragment.app.Fragment
-keepclasseswithmembers,allowobfuscation public class <1> {
    public <init>();
}

# End of content from /home/jenkins/.gradle/caches/transforms-3/d5e2ed87cbc739ec8ccc5d886391db48/transformed/fragment-1.5.3/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/e5052d8a7c4f1778c0fa6129dfdab7c6/transformed/navigation-common-2.5.2/proguard.txt
# Copyright (C) 2019 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# NavArgsLazy creates NavArgs instances using reflection
-if public class ** implements androidx.navigation.NavArgs
-keepclassmembers public class <1> {
    ** fromBundle(android.os.Bundle);
}

# Retain the @Navigator.Name annotation on each subclass of Navigator.
# R8 full mode only retains annotations on items matched by a -keep rule,
# hence the extra -keep rule for the subclasses of Navigator.
#
# A -keep rule for the Navigator.Name annotation class is not required
# since the annotation is referenced from the code.
-keepattributes RuntimeVisibleAnnotations
-keep,allowobfuscation,allowshrinking class * extends androidx.navigation.Navigator

# End of content from /home/jenkins/.gradle/caches/transforms-3/e5052d8a7c4f1778c0fa6129dfdab7c6/transformed/navigation-common-2.5.2/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/d6ad00c1cac0ec0b48844bde1911cf76/transformed/lifecycle-viewmodel-2.5.1/proguard.txt
-keepclassmembers,allowobfuscation class * extends androidx.lifecycle.ViewModel {
    <init>();
}

-keepclassmembers,allowobfuscation class * extends androidx.lifecycle.AndroidViewModel {
    <init>(android.app.Application);
}

# End of content from /home/jenkins/.gradle/caches/transforms-3/d6ad00c1cac0ec0b48844bde1911cf76/transformed/lifecycle-viewmodel-2.5.1/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/03966aa924eb458b97e01bb469f73fd0/transformed/lifecycle-viewmodel-savedstate-2.5.1/proguard.txt
-keepclassmembers,allowobfuscation class * extends androidx.lifecycle.ViewModel {
    <init>(androidx.lifecycle.SavedStateHandle);
}

-keepclassmembers,allowobfuscation class * extends androidx.lifecycle.AndroidViewModel {
    <init>(android.app.Application,androidx.lifecycle.SavedStateHandle);
}

# End of content from /home/jenkins/.gradle/caches/transforms-3/03966aa924eb458b97e01bb469f73fd0/transformed/lifecycle-viewmodel-savedstate-2.5.1/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/3581d856f256f523dfaa96e848c5f5d6/transformed/rules/lib/META-INF/com.android.tools/r8/coroutines.pro
# When editing this file, update the following files as well:
# - META-INF/proguard/coroutines.pro
# - META-INF/com.android.tools/proguard/coroutines.pro

# Most of volatile fields are updated with AFU and should not be mangled
-keepclassmembers class kotlinx.coroutines.** {
    volatile <fields>;
}

# Same story for the standard library's SafeContinuation that also uses AtomicReferenceFieldUpdater
-keepclassmembers class kotlin.coroutines.SafeContinuation {
    volatile <fields>;
}

# These classes are only required by kotlinx.coroutines.debug.AgentPremain, which is only loaded when
# kotlinx-coroutines-core is used as a Java agent, so these are not needed in contexts where ProGuard is used.
-dontwarn java.lang.instrument.ClassFileTransformer
-dontwarn sun.misc.SignalHandler
-dontwarn java.lang.instrument.Instrumentation
-dontwarn sun.misc.Signal

# Only used in `kotlinx.coroutines.internal.ExceptionsConstructor`.
# The case when it is not available is hidden in a `try`-`catch`, as well as a check for Android.
-dontwarn java.lang.ClassValue

# An annotation used for build tooling, won't be directly accessed.
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
# End of content from /home/jenkins/.gradle/caches/transforms-3/3581d856f256f523dfaa96e848c5f5d6/transformed/rules/lib/META-INF/com.android.tools/r8/coroutines.pro
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/1981ccd69edda311a71141c81b3d7c50/transformed/window-1.0.0/proguard.txt
# Copyright (C) 2020 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# A rule that will keep classes that implement SidecarInterface$SidecarCallback if Sidecar seems
# be used. See b/157286362 and b/165268619 for details.
# TODO(b/208543178) investigate how to pass header jar to R8 so we don't need this rule
-if class androidx.window.layout.SidecarCompat {
  public setExtensionCallback(androidx.window.layout.ExtensionInterfaceCompat$ExtensionCallbackInterface);
}
-keep class androidx.window.layout.SidecarCompat$TranslatingCallback,
 androidx.window.layout.SidecarCompat$DistinctSidecarElementCallback {
  public onDeviceStateChanged(androidx.window.sidecar.SidecarDeviceState);
  public onWindowLayoutChanged(android.os.IBinder, androidx.window.sidecar.SidecarWindowLayoutInfo);
}
# End of content from /home/jenkins/.gradle/caches/transforms-3/1981ccd69edda311a71141c81b3d7c50/transformed/window-1.0.0/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/eb1b567f8ee70565a281aa703e824246/transformed/rules/lib/META-INF/com.android.tools/r8-from-1.6.0/coroutines.pro
# Allow R8 to optimize away the FastServiceLoader.
# Together with ServiceLoader optimization in R8
# this results in direct instantiation when loading Dispatchers.Main
-assumenosideeffects class kotlinx.coroutines.internal.MainDispatcherLoader {
    boolean FAST_SERVICE_LOADER_ENABLED return false;
}

-assumenosideeffects class kotlinx.coroutines.internal.FastServiceLoaderKt {
    boolean ANDROID_DETECTED return true;
}

# Disable support for "Missing Main Dispatcher", since we always have Android main dispatcher
-assumenosideeffects class kotlinx.coroutines.internal.MainDispatchersKt {
    boolean SUPPORT_MISSING return false;
}

# Statically turn off all debugging facilities and assertions
-assumenosideeffects class kotlinx.coroutines.DebugKt {
    boolean getASSERTIONS_ENABLED() return false;
    boolean getDEBUG() return false;
    boolean getRECOVER_STACK_TRACES() return false;
}

# End of content from /home/jenkins/.gradle/caches/transforms-3/eb1b567f8ee70565a281aa703e824246/transformed/rules/lib/META-INF/com.android.tools/r8-from-1.6.0/coroutines.pro
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/b33bde69240d2a398e857a3a4467b192/transformed/work-runtime-2.7.1/proguard.txt
-keep class * extends androidx.work.Worker
-keep class * extends androidx.work.InputMerger
# Keep all constructors on ListenableWorker, Worker (also marked with @Keep)
-keep public class * extends androidx.work.ListenableWorker {
    public <init>(...);
}
# We need to keep WorkerParameters for the ListenableWorker constructor
-keep class androidx.work.WorkerParameters

# End of content from /home/jenkins/.gradle/caches/transforms-3/b33bde69240d2a398e857a3a4467b192/transformed/work-runtime-2.7.1/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/850b77dd27dcd15e7dd746032908e1fd/transformed/room-runtime-2.4.3/proguard.txt
-keep class * extends androidx.room.RoomDatabase
-dontwarn androidx.room.paging.**

# End of content from /home/jenkins/.gradle/caches/transforms-3/850b77dd27dcd15e7dd746032908e1fd/transformed/room-runtime-2.4.3/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/b12b92e1b4f0b21d0c0c06b4730fc023/transformed/coordinatorlayout-1.2.0/proguard.txt
# Copyright (C) 2016 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# CoordinatorLayout resolves the behaviors of its child components with reflection.
-keep public class * extends androidx.coordinatorlayout.widget.CoordinatorLayout$Behavior {
    public <init>(android.content.Context, android.util.AttributeSet);
    public <init>();
}

# Make sure we keep annotations for CoordinatorLayout's DefaultBehavior and ViewPager's DecorView
-keepattributes AnnotationDefault,
                RuntimeVisibleAnnotations,
                RuntimeVisibleParameterAnnotations,
                RuntimeVisibleTypeAnnotations

# End of content from /home/jenkins/.gradle/caches/transforms-3/b12b92e1b4f0b21d0c0c06b4730fc023/transformed/coordinatorlayout-1.2.0/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/e24b258ef67a30e8dca835107e219b4a/transformed/exoplayer-ui-2.14.0/proguard.txt
# Proguard rules specific to the UI module.

# Constructor method accessed via reflection in TrackSelectionDialogBuilder
-dontnote androidx.appcompat.app.AlertDialog.Builder
-keepclassmembers class androidx.appcompat.app.AlertDialog$Builder {
  <init>(android.content.Context, int);
  public android.content.Context getContext();
  public androidx.appcompat.app.AlertDialog$Builder setTitle(java.lang.CharSequence);
  public androidx.appcompat.app.AlertDialog$Builder setView(android.view.View);
  public androidx.appcompat.app.AlertDialog$Builder setPositiveButton(int, android.content.DialogInterface$OnClickListener);
  public androidx.appcompat.app.AlertDialog$Builder setNegativeButton(int, android.content.DialogInterface$OnClickListener);
  public androidx.appcompat.app.AlertDialog create();
}
# Equivalent methods needed when the library is de-jetified.
-dontnote android.support.v7.app.AlertDialog.Builder
-keepclassmembers class android.support.v7.app.AlertDialog$Builder {
  <init>(android.content.Context, int);
  public android.content.Context getContext();
  public android.support.v7.app.AlertDialog$Builder setTitle(java.lang.CharSequence);
  public android.support.v7.app.AlertDialog$Builder setView(android.view.View);
  public android.support.v7.app.AlertDialog$Builder setPositiveButton(int, android.content.DialogInterface$OnClickListener);
  public android.support.v7.app.AlertDialog$Builder setNegativeButton(int, android.content.DialogInterface$OnClickListener);
  public android.support.v7.app.AlertDialog create();
}

# Don't warn about checkerframework and Kotlin annotations
-dontwarn org.checkerframework.**
-dontwarn kotlin.annotations.jvm.**
-dontwarn javax.annotation.**

# End of content from /home/jenkins/.gradle/caches/transforms-3/e24b258ef67a30e8dca835107e219b4a/transformed/exoplayer-ui-2.14.0/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/8a44c201fd34ea2c7aea730f452ff5fb/transformed/recyclerview-1.2.1/proguard.txt
# Copyright (C) 2015 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# When layoutManager xml attribute is used, RecyclerView inflates
#LayoutManagers' constructors using reflection.
-keep public class * extends androidx.recyclerview.widget.RecyclerView$LayoutManager {
    public <init>(android.content.Context, android.util.AttributeSet, int, int);
    public <init>();
}

-keepclassmembers class androidx.recyclerview.widget.RecyclerView {
    public void suppressLayout(boolean);
    public boolean isLayoutSuppressed();
}
# End of content from /home/jenkins/.gradle/caches/transforms-3/8a44c201fd34ea2c7aea730f452ff5fb/transformed/recyclerview-1.2.1/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/36c8d67f5265cf01644fb78128efe3c0/transformed/lifecycle-process-2.5.1/proguard.txt
# this rule is need to work properly when app is compiled with api 28, see b/142778206
-keepclassmembers class * extends androidx.lifecycle.EmptyActivityLifecycleCallbacks { *; }
# End of content from /home/jenkins/.gradle/caches/transforms-3/36c8d67f5265cf01644fb78128efe3c0/transformed/lifecycle-process-2.5.1/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/73dc649ec8bf187878409d26cb088642/transformed/vectordrawable-animated-1.1.0/proguard.txt
# Copyright (C) 2016 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# keep setters in VectorDrawables so that animations can still work.
-keepclassmembers class androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$* {
   void set*(***);
   *** get*();
}

# End of content from /home/jenkins/.gradle/caches/transforms-3/73dc649ec8bf187878409d26cb088642/transformed/vectordrawable-animated-1.1.0/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/c6094215346b2790bf72413de9602b4e/transformed/media-1.2.1/proguard.txt
# Copyright (C) 2017 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Prevent Parcelable objects from being removed or renamed.
-keep class android.support.v4.media.** implements android.os.Parcelable {
    public static final android.os.Parcelable$Creator *;
}

# Prevent Parcelable objects from being removed or renamed.
-keep class androidx.media.** implements android.os.Parcelable {
    public static final android.os.Parcelable$Creator *;
}
# End of content from /home/jenkins/.gradle/caches/transforms-3/c6094215346b2790bf72413de9602b4e/transformed/media-1.2.1/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/cafe0ec4e3617bbb7da0833fa4963bc1/transformed/transition-1.4.1/proguard.txt
# Copyright (C) 2017 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Keep a field in transition that is used to keep a reference to weakly-referenced object
-keepclassmembers class androidx.transition.ChangeBounds$* extends android.animation.AnimatorListenerAdapter {
  androidx.transition.ChangeBounds$ViewBounds mViewBounds;
}

# End of content from /home/jenkins/.gradle/caches/transforms-3/cafe0ec4e3617bbb7da0833fa4963bc1/transformed/transition-1.4.1/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/1642adc9e6509f1a2d3e7937350fd089/transformed/core-1.9.0/proguard.txt
# Never inline methods, but allow shrinking and obfuscation.
-keepclassmembernames,allowobfuscation,allowshrinking class androidx.core.view.ViewCompat$Api* {
  <methods>;
}
-keepclassmembernames,allowobfuscation,allowshrinking class androidx.core.view.WindowInsetsCompat$*Impl* {
  <methods>;
}
-keepclassmembernames,allowobfuscation,allowshrinking class androidx.core.app.NotificationCompat$*$Api*Impl {
  <methods>;
}
-keepclassmembernames,allowobfuscation,allowshrinking class androidx.core.os.UserHandleCompat$Api*Impl {
  <methods>;
}
-keepclassmembernames,allowobfuscation,allowshrinking class androidx.core.widget.EdgeEffectCompat$Api*Impl {
  <methods>;
}

# End of content from /home/jenkins/.gradle/caches/transforms-3/1642adc9e6509f1a2d3e7937350fd089/transformed/core-1.9.0/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/9dd8927629deb6651f8b5d799a59dc87/transformed/lifecycle-runtime-2.5.1/proguard.txt
-keepattributes AnnotationDefault,
                RuntimeVisibleAnnotations,
                RuntimeVisibleParameterAnnotations,
                RuntimeVisibleTypeAnnotations

-keepclassmembers enum androidx.lifecycle.Lifecycle$Event {
    <fields>;
}

-keep !interface * implements androidx.lifecycle.LifecycleObserver {
}

-keep class * implements androidx.lifecycle.GeneratedAdapter {
    <init>(...);
}

-keepclassmembers class ** {
    @androidx.lifecycle.OnLifecycleEvent *;
}

# this rule is need to work properly when app is compiled with api 28, see b/142778206
# Also this rule prevents registerIn from being inlined.
-keepclassmembers class androidx.lifecycle.ReportFragment$LifecycleCallbacks { *; }
# End of content from /home/jenkins/.gradle/caches/transforms-3/9dd8927629deb6651f8b5d799a59dc87/transformed/lifecycle-runtime-2.5.1/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/4a3470bace44e4b300ea40aafefefb42/transformed/savedstate-1.2.0/proguard.txt
# Copyright (C) 2019 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

-keepclassmembers,allowobfuscation class * implements androidx.savedstate.SavedStateRegistry$AutoRecreated {
    <init>();
}

# End of content from /home/jenkins/.gradle/caches/transforms-3/4a3470bace44e4b300ea40aafefefb42/transformed/savedstate-1.2.0/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/ff5579868850598fa65b273cb65be909/transformed/flexbox-3.0.0/proguard.txt
#
# Copyright 2016 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

# The FlexboxLayoutManager may be set from a layout xml, in that situation the RecyclerView
# tries to instantiate the layout manager using reflection.
# This is to prevent the layout manager from being obfuscated.
-keepnames public class com.google.android.flexbox.FlexboxLayoutManager
# End of content from /home/jenkins/.gradle/caches/transforms-3/ff5579868850598fa65b273cb65be909/transformed/flexbox-3.0.0/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/9fad036de4686972ee7e0e3dc8fc7ee4/transformed/core-1.10.3/proguard.txt
-keepnames class com.google.android.play.core.review.ReviewInfo

# End of content from /home/jenkins/.gradle/caches/transforms-3/9fad036de4686972ee7e0e3dc8fc7ee4/transformed/core-1.10.3/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/3827e97853b1fa4fa4592b964304bb32/transformed/volley-1.2.1/proguard.txt
# Prevent Proguard from inlining methods that are intentionally extracted to ensure locals have a
# constrained liveness scope by the GC. This is needed to avoid keeping previous request references
# alive for an indeterminate amount of time. See also https://github.com/google/volley/issues/114
-keepclassmembers,allowshrinking,allowobfuscation class com.android.volley.NetworkDispatcher {
    void processRequest();
}
-keepclassmembers,allowshrinking,allowobfuscation class com.android.volley.CacheDispatcher {
    void processRequest();
}

# End of content from /home/jenkins/.gradle/caches/transforms-3/3827e97853b1fa4fa4592b964304bb32/transformed/volley-1.2.1/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/b0438d7dcd3b01ea03834d0730e5507c/transformed/versionedparcelable-1.1.1/proguard.txt
-keep class * implements androidx.versionedparcelable.VersionedParcelable
-keep public class android.support.**Parcelizer { *; }
-keep public class androidx.**Parcelizer { *; }
-keep public class androidx.versionedparcelable.ParcelImpl

# End of content from /home/jenkins/.gradle/caches/transforms-3/b0438d7dcd3b01ea03834d0730e5507c/transformed/versionedparcelable-1.1.1/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/4a52f9ca191f12321c6e5f9dad282e09/transformed/startup-runtime-1.1.1/proguard.txt
# It's important that we preserve initializer names, given they are used in the AndroidManifest.xml.
-keepnames class * extends androidx.startup.Initializer

# These Proguard rules ensures that ComponentInitializers are are neither shrunk nor obfuscated,
# and are a part of the primary dex file. This is because they are discovered and instantiated
# during application startup.
-keep class * extends androidx.startup.Initializer {
    # Keep the public no-argument constructor while allowing other methods to be optimized.
    <init>();
}

-assumenosideeffects class androidx.startup.StartupLogger { public static <methods>; }

# End of content from /home/jenkins/.gradle/caches/transforms-3/4a52f9ca191f12321c6e5f9dad282e09/transformed/startup-runtime-1.1.1/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/7f3f22b662dd594ac1bf2b3773f83b6f/transformed/exoplayer-core-2.14.0/proguard.txt
# Proguard rules specific to the core module.

# Constant folding for resource integers may mean that a resource passed to this method appears to be unused. Keep the method to prevent this from happening.
-keepclassmembers class com.google.android.exoplayer2.upstream.RawResourceDataSource {
  public static android.net.Uri buildRawResourceUri(int);
}

# Constructors accessed via reflection in DefaultRenderersFactory
-dontnote com.google.android.exoplayer2.ext.vp9.LibvpxVideoRenderer
-keepclassmembers class com.google.android.exoplayer2.ext.vp9.LibvpxVideoRenderer {
  <init>(long, android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, int);
}
-dontnote com.google.android.exoplayer2.ext.av1.Libgav1VideoRenderer
-keepclassmembers class com.google.android.exoplayer2.ext.av1.Libgav1VideoRenderer {
  <init>(long, android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, int);
}
-dontnote com.google.android.exoplayer2.ext.opus.LibopusAudioRenderer
-keepclassmembers class com.google.android.exoplayer2.ext.opus.LibopusAudioRenderer {
  <init>(android.os.Handler, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.audio.AudioSink);
}
-dontnote com.google.android.exoplayer2.ext.flac.LibflacAudioRenderer
-keepclassmembers class com.google.android.exoplayer2.ext.flac.LibflacAudioRenderer {
  <init>(android.os.Handler, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.audio.AudioSink);
}
-dontnote com.google.android.exoplayer2.ext.ffmpeg.FfmpegAudioRenderer
-keepclassmembers class com.google.android.exoplayer2.ext.ffmpeg.FfmpegAudioRenderer {
  <init>(android.os.Handler, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.audio.AudioSink);
}

# Constructors accessed via reflection in DefaultDataSource
-dontnote com.google.android.exoplayer2.ext.rtmp.RtmpDataSource
-keepclassmembers class com.google.android.exoplayer2.ext.rtmp.RtmpDataSource {
  <init>();
}

# Constructors accessed via reflection in DefaultDownloaderFactory
-dontnote com.google.android.exoplayer2.source.dash.offline.DashDownloader
-keepclassmembers class com.google.android.exoplayer2.source.dash.offline.DashDownloader {
  <init>(com.google.android.exoplayer2.MediaItem, com.google.android.exoplayer2.upstream.cache.CacheDataSource$Factory, java.util.concurrent.Executor);
}
-dontnote com.google.android.exoplayer2.source.hls.offline.HlsDownloader
-keepclassmembers class com.google.android.exoplayer2.source.hls.offline.HlsDownloader {
  <init>(com.google.android.exoplayer2.MediaItem, com.google.android.exoplayer2.upstream.cache.CacheDataSource$Factory, java.util.concurrent.Executor);
}
-dontnote com.google.android.exoplayer2.source.smoothstreaming.offline.SsDownloader
-keepclassmembers class com.google.android.exoplayer2.source.smoothstreaming.offline.SsDownloader {
  <init>(com.google.android.exoplayer2.MediaItem, com.google.android.exoplayer2.upstream.cache.CacheDataSource$Factory, java.util.concurrent.Executor);
}

# Constructors accessed via reflection in DefaultMediaSourceFactory
-dontnote com.google.android.exoplayer2.source.dash.DashMediaSource$Factory
-keepclasseswithmembers class com.google.android.exoplayer2.source.dash.DashMediaSource$Factory {
  <init>(com.google.android.exoplayer2.upstream.DataSource$Factory);
}
-dontnote com.google.android.exoplayer2.source.hls.HlsMediaSource$Factory
-keepclasseswithmembers class com.google.android.exoplayer2.source.hls.HlsMediaSource$Factory {
  <init>(com.google.android.exoplayer2.upstream.DataSource$Factory);
}
-dontnote com.google.android.exoplayer2.source.smoothstreaming.SsMediaSource$Factory
-keepclasseswithmembers class com.google.android.exoplayer2.source.smoothstreaming.SsMediaSource$Factory {
  <init>(com.google.android.exoplayer2.upstream.DataSource$Factory);
}
-dontnote com.google.android.exoplayer2.source.rtsp.RtspMediaSource$Factory
-keepclasseswithmembers class com.google.android.exoplayer2.source.rtsp.RtspMediaSource$Factory {
  <init>();
}

# End of content from /home/jenkins/.gradle/caches/transforms-3/7f3f22b662dd594ac1bf2b3773f83b6f/transformed/exoplayer-core-2.14.0/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/d2ff289c1bd276c751f242a0f1fc413e/transformed/exoplayer-extractor-2.14.0/proguard.txt
# Proguard rules specific to the extractor module.

# Methods accessed via reflection in DefaultExtractorsFactory
-dontnote com.google.android.exoplayer2.ext.flac.FlacExtractor
-keepclassmembers class com.google.android.exoplayer2.ext.flac.FlacExtractor {
  <init>(int);
}
-dontnote com.google.android.exoplayer2.ext.flac.FlacLibrary
-keepclassmembers class com.google.android.exoplayer2.ext.flac.FlacLibrary {
  public static boolean isAvailable();
}

# Don't warn about checkerframework and Kotlin annotations
-dontwarn org.checkerframework.**
-dontwarn kotlin.annotations.jvm.**
-dontwarn javax.annotation.**

# End of content from /home/jenkins/.gradle/caches/transforms-3/d2ff289c1bd276c751f242a0f1fc413e/transformed/exoplayer-extractor-2.14.0/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/febdc25c1f8af182fa0d30659a761df1/transformed/exoplayer-common-2.14.0/proguard.txt
# Proguard rules specific to the common module.

# Don't warn about checkerframework and Kotlin annotations
-dontwarn org.checkerframework.**
-dontwarn kotlin.annotations.jvm.**
-dontwarn javax.annotation.**

# From https://github.com/google/guava/wiki/UsingProGuardWithGuava
-dontwarn java.lang.ClassValue
-dontwarn java.lang.SafeVarargs
-dontwarn javax.lang.model.element.Modifier
-dontwarn sun.misc.Unsafe

# Don't warn about Guava's compile-only dependencies.
# These lines are needed for ProGuard but not R8.
-dontwarn com.google.errorprone.annotations.**
-dontwarn com.google.j2objc.annotations.**
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement

# Workaround for https://issuetracker.google.com/issues/112297269
# This is needed for ProGuard but not R8.
-keepclassmembernames class com.google.common.base.Function { *; }

# End of content from /home/jenkins/.gradle/caches/transforms-3/febdc25c1f8af182fa0d30659a761df1/transformed/exoplayer-common-2.14.0/proguard.txt
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/3dd72858df1db14f7d7303f37d3a534c/transformed/rules/lib/META-INF/proguard/androidx-annotations.pro
-keep,allowobfuscation @interface 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>(...);
}

-keepclassmembers,allowobfuscation class * {
  @androidx.annotation.DoNotInline <methods>;
}

# End of content from /home/jenkins/.gradle/caches/transforms-3/3dd72858df1db14f7d7303f37d3a534c/transformed/rules/lib/META-INF/proguard/androidx-annotations.pro
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/52bd07d82c56aa3509eeb7a7941b2fc5/transformed/rules/lib/META-INF/com.android.tools/r8-from-1.6.0/kotlin-reflect.pro
# When editing this file, update the following files as well:
# - META-INF/com.android.tools/proguard/kotlin-reflect.pro
# - META-INF/com.android.tools/r8-upto-1.6.0/kotlin-reflect.pro
# - META-INF/proguard/kotlin-reflect.pro
# Keep Metadata annotations so they can be parsed at runtime.
-keep class kotlin.Metadata { *; }

# Keep generic signatures and annotations at runtime.
# R8 requires InnerClasses and EnclosingMethod if you keepattributes Signature.
-keepattributes InnerClasses,Signature,RuntimeVisible*Annotations,EnclosingMethod

# Don't note on API calls from different JVM versions as they're gated properly at runtime.
-dontnote kotlin.internal.PlatformImplementationsKt

# Don't note on internal APIs, as there is some class relocating that shrinkers may unnecessarily find suspicious.
-dontwarn kotlin.reflect.jvm.internal.**
# End of content from /home/jenkins/.gradle/caches/transforms-3/52bd07d82c56aa3509eeb7a7941b2fc5/transformed/rules/lib/META-INF/com.android.tools/r8-from-1.6.0/kotlin-reflect.pro
# The proguard configuration file for the following section is /home/jenkins/.gradle/caches/transforms-3/4331f4f32fa2e169c119ac0fbfb60930/transformed/eventbus-3.3.1/proguard.txt
-keepattributes *Annotation*
-keepclassmembers class * {
    @org.greenrobot.eventbus.Subscribe <methods>;
}
-keep enum org.greenrobot.eventbus.ThreadMode { *; }

# If using AsyncExecutord, keep required constructor of default event used.
# Adjust the class name if a custom failure event type is used.
-keepclassmembers class org.greenrobot.eventbus.util.ThrowableFailureEvent {
    <init>(java.lang.Throwable);
}

# Accessed via reflection, avoid renaming or removal
-keep class org.greenrobot.eventbus.android.AndroidComponentsImpl

# End of content from /home/jenkins/.gradle/caches/transforms-3/4331f4f32fa2e169c119ac0fbfb60930/transformed/eventbus-3.3.1/proguard.txt
# The proguard configuration file for the following section is <unknown>
-ignorewarnings
# End of content from <unknown>