diff --git a/.github/nightly-notes/2026-10-27-feat-profiles-slices.md b/.github/nightly-notes/2026-10-27-feat-profiles-slices.md
new file mode 100644
index 0000000000..d92c9ad289
--- /dev/null
+++ b/.github/nightly-notes/2026-10-27-feat-profiles-slices.md
@@ -0,0 +1,2 @@
+## Fixed
+- Backups now keep hidden music shelves and library sections, per-channel speeds, playlist sort orders and channels left out of Shorts
diff --git a/.github/nightly-notes/2026-10-27-fix-profiles-notifications.md b/.github/nightly-notes/2026-10-27-fix-profiles-notifications.md
new file mode 100644
index 0000000000..2a77f022e3
--- /dev/null
+++ b/.github/nightly-notes/2026-10-27-fix-profiles-notifications.md
@@ -0,0 +1,2 @@
+## Fixed
+- Tapping a premiere reminder notification opens the video
diff --git a/.github/nightly-notes/2026-10-27-fix-profiles-work.md b/.github/nightly-notes/2026-10-27-fix-profiles-work.md
new file mode 100644
index 0000000000..6d3b842acf
--- /dev/null
+++ b/.github/nightly-notes/2026-10-27-fix-profiles-work.md
@@ -0,0 +1,2 @@
+## Fixed
+- The break reminder stops once you turn it off
diff --git a/.github/nightly-notes/2026-10-28-feat-profiles-auto-backup.md b/.github/nightly-notes/2026-10-28-feat-profiles-auto-backup.md
new file mode 100644
index 0000000000..14004728d3
--- /dev/null
+++ b/.github/nightly-notes/2026-10-28-feat-profiles-auto-backup.md
@@ -0,0 +1,3 @@
+## Fixed
+- Automatic master backups now include your recap and favourite artists
+- Automatic backups start again after the app is restored onto a phone
diff --git a/.github/nightly-notes/2026-10-28-feat-profiles-show.md b/.github/nightly-notes/2026-10-28-feat-profiles-show.md
new file mode 100644
index 0000000000..06d83423b5
--- /dev/null
+++ b/.github/nightly-notes/2026-10-28-feat-profiles-show.md
@@ -0,0 +1,2 @@
+## New
+- Profiles: up to five people can each have their own feed, history, subscriptions, settings and recommendations in one app, switched from the avatar on Home or, on TV, from the rail and a Who's watching? screen (#372, #602, #883, #1039)
diff --git a/app/src/androidTest/java/io/github/aedev/flow/data/local/ProfileDatabaseTest.kt b/app/src/androidTest/java/io/github/aedev/flow/data/local/ProfileDatabaseTest.kt
new file mode 100644
index 0000000000..22c78a59f8
--- /dev/null
+++ b/app/src/androidTest/java/io/github/aedev/flow/data/local/ProfileDatabaseTest.kt
@@ -0,0 +1,77 @@
+package io.github.aedev.flow.data.local
+
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.platform.app.InstrumentationRegistry
+import io.github.aedev.flow.data.local.entity.DownloadEntity
+import kotlinx.coroutines.test.runTest
+import org.junit.After
+import org.junit.Assert.assertEquals
+import org.junit.Assert.assertSame
+import org.junit.Assert.assertTrue
+import org.junit.Test
+import org.junit.runner.RunWith
+import java.io.File
+
+/**
+ * Every profile opens its own file of the same AppDatabase class, so no profile ever needs a schema change or a
+ * migration of its own. The test runner's Application skips FlowApplication, so the active profile is read lazily
+ * from the registry, as in a restore.
+ */
+@RunWith(AndroidJUnit4::class)
+class ProfileDatabaseTest {
+ private val context = InstrumentationRegistry.getInstrumentation().targetContext
+ private val root = File(context.filesDir, "profile_library/profile-database-test")
+ private val path = File(root, "databases/${AppDatabase.DEFAULT_NAME}").apply { parentFile?.mkdirs() }.absolutePath
+
+ @After
+ fun tearDown() {
+ root.deleteRecursively()
+ root.parentFile?.delete()
+ }
+
+ @Test
+ fun withDefaultRunningBothHandlesAreOneDatabase() {
+ assertSame(AppDatabase.device(context), AppDatabase.profile(context))
+ }
+
+ @Test
+ fun anotherProfilesFileOpensAtTheCurrentVersionWithEmptyTables() {
+ val database = AppDatabase.open(context, path)
+ try {
+ val sqlite = database.openHelper.readableDatabase
+ assertEquals(33, sqlite.version)
+ listOf("watch_history", "playlists", "videos", "notes", "downloads", "sync_log").forEach { table ->
+ sqlite.query("SELECT COUNT(*) FROM $table").use { cursor ->
+ cursor.moveToFirst()
+ assertEquals(table, 0, cursor.getInt(0))
+ }
+ }
+ assertTrue(File(path).exists())
+ } finally {
+ database.close()
+ }
+ }
+
+ @Test
+ fun anotherProfilesFileKeepsItsRowsWhenOpenedAgain() =
+ runTest {
+ AppDatabase.open(context, path).run {
+ downloadDao().insertDownload(DownloadEntity(videoId = "v1", title = "Kept", uploader = "Uploader"))
+ close()
+ }
+
+ val reopened = AppDatabase.open(context, path)
+ try {
+ assertEquals(
+ "Kept",
+ reopened
+ .downloadDao()
+ .getDownloadWithItems("v1")
+ ?.download
+ ?.title,
+ )
+ } finally {
+ reopened.close()
+ }
+ }
+}
diff --git a/app/src/debug/AndroidManifest.xml b/app/src/debug/AndroidManifest.xml
new file mode 100644
index 0000000000..cad071e001
--- /dev/null
+++ b/app/src/debug/AndroidManifest.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
diff --git a/app/src/debug/java/io/github/aedev/flow/data/profile/ProfileProbeReceiver.kt b/app/src/debug/java/io/github/aedev/flow/data/profile/ProfileProbeReceiver.kt
new file mode 100644
index 0000000000..b00f7e24ad
--- /dev/null
+++ b/app/src/debug/java/io/github/aedev/flow/data/profile/ProfileProbeReceiver.kt
@@ -0,0 +1,137 @@
+package io.github.aedev.flow.data.profile
+
+import android.content.BroadcastReceiver
+import android.content.Context
+import android.content.Intent
+import android.util.Log
+import dagger.hilt.EntryPoint
+import dagger.hilt.InstallIn
+import dagger.hilt.android.EntryPointAccessors
+import dagger.hilt.components.SingletonComponent
+import io.github.aedev.flow.data.local.ChannelSubscription
+import io.github.aedev.flow.data.local.LikedVideoInfo
+import io.github.aedev.flow.data.local.LikedVideosRepository
+import io.github.aedev.flow.data.local.PlayerPreferences
+import io.github.aedev.flow.data.local.PlaylistRepository
+import io.github.aedev.flow.data.local.SearchHistoryRepository
+import io.github.aedev.flow.data.local.SubscriptionRepository
+import io.github.aedev.flow.data.local.ViewHistory
+import io.github.aedev.flow.data.model.Video
+import io.github.aedev.flow.data.notes.NoteKind
+import io.github.aedev.flow.data.notes.NotesRepository
+import io.github.aedev.flow.data.recommendation.FlowNeuroEngine
+import io.github.aedev.flow.data.recommendation.InteractionType
+import io.github.aedev.flow.notification.UpcomingReminder
+import io.github.aedev.flow.notification.UpcomingVideoReminderWorker
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.SupervisorJob
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+import java.util.UUID
+import java.util.concurrent.TimeUnit
+
+/**
+ * Debug builds only: the hook `scripts/profiles/leak_matrix.sh` drives over adb. It writes a marker into every
+ * profile-bound store of the running profile, creates profiles and switches between them; the script then looks for
+ * each marker in files that belong to any other profile.
+ *
+ * `--es op mark --es tag zzleakA` · `--es op create --es name A [--ez copySettings true]` · `--es op switch --es id `
+ */
+@EntryPoint
+@InstallIn(SingletonComponent::class)
+internal interface ProfileProbeEntryPoint {
+ fun profiles(): ProfileRepository
+
+ fun switcher(): ProfileSwitcher
+
+ fun searches(): SearchHistoryRepository
+
+ fun subscriptions(): SubscriptionRepository
+
+ fun playlists(): PlaylistRepository
+
+ fun history(): ViewHistory
+
+ fun likes(): LikedVideosRepository
+
+ fun notes(): NotesRepository
+
+ fun preferences(): PlayerPreferences
+
+ fun engine(): FlowNeuroEngine
+}
+
+class ProfileProbeReceiver : BroadcastReceiver() {
+ override fun onReceive(
+ context: Context,
+ intent: Intent,
+ ) {
+ val app = EntryPointAccessors.fromApplication(context, ProfileProbeEntryPoint::class.java)
+ val pending = goAsync()
+ scope.launch {
+ val result = runCatching { app.handle(context, intent) }.getOrElse { "error ${it.javaClass.simpleName}: ${it.message}" }
+ Log.i(TAG, "${intent.getStringExtra("op")} in ${app.profiles().running().id}: $result")
+ pending.finish()
+ }
+ }
+
+ private suspend fun ProfileProbeEntryPoint.handle(
+ context: Context,
+ intent: Intent,
+ ): String =
+ when (intent.getStringExtra("op")) {
+ "mark" -> {
+ mark(context, requireNotNull(intent.getStringExtra("tag")))
+ }
+
+ "create" -> {
+ val copy = if (intent.getBooleanExtra("copySettings", false)) setOf(SlicePart.SETTINGS) else emptySet()
+ when (val created = profiles().create(requireNotNull(intent.getStringExtra("name")), copy = copy)) {
+ is CreateResult.Created -> "created ${created.profile.id}"
+ else -> created.toString()
+ }
+ }
+
+ "switch" -> {
+ val id = requireNotNull(intent.getStringExtra("id"))
+ withContext(Dispatchers.Main) { switcher().switchTo(id) }.toString()
+ }
+
+ else -> {
+ "unknown op"
+ }
+ }
+
+ /** [tag] in every profile-bound store; the subtitle language gets `zzset…` so a settings-only copy can be told apart. */
+ private suspend fun ProfileProbeEntryPoint.mark(
+ context: Context,
+ tag: String,
+ ): String {
+ val videoId = "${tag}vid"
+ val title = "$tag video"
+ val channel = "$tag channel"
+ searches().saveSearchQuery(tag)
+ subscriptions().subscribe(ChannelSubscription(channelId = "UC$tag", channelName = channel, channelThumbnail = ""))
+ playlists().createPlaylist(UUID.randomUUID().toString(), "$tag playlist", "", isPrivate = true)
+ history().savePlaybackPosition(videoId, position = 30_000, duration = 60_000, title = title, channelName = channel)
+ likes().likeVideo(LikedVideoInfo(videoId = videoId, title = title, thumbnail = "", channelName = channel))
+ notes().save(NoteKind.Video, videoId, "$tag note")
+ engine().onVideoInteraction(
+ Video(videoId, title, channel, "UC$tag", "", duration = 600, viewCount = 1_000, uploadDate = ""),
+ InteractionType.WATCHED,
+ percentWatched = 0.9f,
+ )
+ preferences().setPreferredSubtitleLanguage(tag.replace("zzleak", "zzset"))
+ val releaseMs = System.currentTimeMillis() + TimeUnit.DAYS.toMillis(7)
+ preferences().setUpcomingVideoReminder(videoId, true)
+ preferences().saveUpcomingReminder(UpcomingReminder(videoId, releaseMs, title, channel, null))
+ UpcomingVideoReminderWorker.scheduleReminder(context, videoId, releaseMs, title, channel, null)
+ return "marked $tag"
+ }
+
+ private companion object {
+ const val TAG = "ProfileProbe"
+ val scope = CoroutineScope(SupervisorJob() + Dispatchers.IO)
+ }
+}
diff --git a/app/src/foss/java/io/github/aedev/flow/discord/DiscordPresenceRuntime.kt b/app/src/foss/java/io/github/aedev/flow/discord/DiscordPresenceRuntime.kt
index 0bfaaa6d6f..c5236e8dff 100644
--- a/app/src/foss/java/io/github/aedev/flow/discord/DiscordPresenceRuntime.kt
+++ b/app/src/foss/java/io/github/aedev/flow/discord/DiscordPresenceRuntime.kt
@@ -7,25 +7,39 @@ import kotlinx.coroutines.flow.StateFlow
import okhttp3.OkHttpClient
object DiscordPresenceRuntime {
- private val unavailableState = DiscordSettingsState(
- isAvailable = false,
- isEnabled = false,
- canEnable = false,
- connectionState = DiscordConnectionState.UNAVAILABLE,
- summary = DiscordSettingsSummary.UNAVAILABLE,
- accountName = null,
- errorMessage = null,
- )
+ private val unavailableState =
+ DiscordSettingsState(
+ isAvailable = false,
+ isEnabled = false,
+ canEnable = false,
+ connectionState = DiscordConnectionState.UNAVAILABLE,
+ summary = DiscordSettingsSummary.UNAVAILABLE,
+ accountName = null,
+ errorMessage = null,
+ )
private val mutableSettingsState = MutableStateFlow(unavailableState)
val settingsState: StateFlow = mutableSettingsState
- fun initialize(context: Context, okHttpClient: OkHttpClient) = Unit
+ fun initialize(
+ context: Context,
+ okHttpClient: OkHttpClient,
+ ) = Unit
+
fun attachActivity(activity: Activity?) = Unit
+
fun detachActivity(activity: Activity) = Unit
+
fun setAppForeground(foreground: Boolean) = Unit
+
suspend fun setEnabled(enabled: Boolean) = Unit
+
suspend fun connectAccount(): DiscordLinkResult = DiscordLinkResult.Failure("")
+
suspend fun retry(): DiscordLinkResult = DiscordLinkResult.Failure("")
+
suspend fun unlink(): Boolean = false
+
+ suspend fun endForSwitch() = Unit
+
fun shutdown() = Unit
}
diff --git a/app/src/github/java/io/github/aedev/flow/discord/DiscordPreferences.kt b/app/src/github/java/io/github/aedev/flow/discord/DiscordPreferences.kt
index d22a9277a2..6c330c40f0 100644
--- a/app/src/github/java/io/github/aedev/flow/discord/DiscordPreferences.kt
+++ b/app/src/github/java/io/github/aedev/flow/discord/DiscordPreferences.kt
@@ -7,11 +7,13 @@ import androidx.datastore.preferences.core.booleanPreferencesKey
import androidx.datastore.preferences.core.edit
import androidx.datastore.preferences.core.stringPreferencesKey
import io.github.aedev.flow.data.local.safePreferencesDataStore
+import io.github.aedev.flow.data.profile.StoreScope
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map
private val Context.discordDataStore: DataStore by safePreferencesDataStore(
name = "discord_presence",
+ scope = StoreScope.PROFILE_PRIVATE,
)
class DiscordPreferences(
@@ -19,13 +21,15 @@ class DiscordPreferences(
) {
constructor(context: Context) : this(context.applicationContext.discordDataStore)
- val enabled: Flow = dataStore.data.map { preferences ->
- preferences[ENABLED] ?: false
- }
+ val enabled: Flow =
+ dataStore.data.map { preferences ->
+ preferences[ENABLED] ?: false
+ }
- val linkedAccountLabel: Flow = dataStore.data.map { preferences ->
- preferences[LINKED_ACCOUNT_LABEL]?.takeIf(String::isNotBlank)
- }
+ val linkedAccountLabel: Flow =
+ dataStore.data.map { preferences ->
+ preferences[LINKED_ACCOUNT_LABEL]?.takeIf(String::isNotBlank)
+ }
suspend fun setEnabled(enabled: Boolean) {
dataStore.edit { preferences -> preferences[ENABLED] = enabled }
diff --git a/app/src/github/java/io/github/aedev/flow/discord/DiscordPresenceRuntime.kt b/app/src/github/java/io/github/aedev/flow/discord/DiscordPresenceRuntime.kt
index 36e2b6738b..cd939769c6 100644
--- a/app/src/github/java/io/github/aedev/flow/discord/DiscordPresenceRuntime.kt
+++ b/app/src/github/java/io/github/aedev/flow/discord/DiscordPresenceRuntime.kt
@@ -4,7 +4,6 @@ import android.app.Activity
import android.content.Context
import android.os.SystemClock
import io.github.aedev.flow.R
-import java.lang.ref.WeakReference
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.SupervisorJob
@@ -13,8 +12,8 @@ import kotlinx.coroutines.coroutineScope
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.SharingStarted
import kotlinx.coroutines.flow.StateFlow
-import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.collectLatest
+import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.flow.flowOf
@@ -24,6 +23,7 @@ import kotlinx.coroutines.flow.stateIn
import kotlinx.coroutines.launch
import kotlinx.coroutines.sync.Mutex
import okhttp3.OkHttpClient
+import java.lang.ref.WeakReference
object DiscordPresenceRuntime {
private var scope: CoroutineScope? = null
@@ -36,30 +36,35 @@ object DiscordPresenceRuntime {
private val isAccountLinkInProgress = MutableStateFlow(false)
private val accountLinkMutex = Mutex()
- private val unavailableState = DiscordSettingsState(
- isAvailable = false,
- isEnabled = false,
- canEnable = false,
- connectionState = DiscordConnectionState.UNAVAILABLE,
- summary = DiscordSettingsSummary.UNAVAILABLE,
- accountName = null,
- errorMessage = null,
- )
+ private val unavailableState =
+ DiscordSettingsState(
+ isAvailable = false,
+ isEnabled = false,
+ canEnable = false,
+ connectionState = DiscordConnectionState.UNAVAILABLE,
+ summary = DiscordSettingsSummary.UNAVAILABLE,
+ accountName = null,
+ errorMessage = null,
+ )
private val _settingsState = MutableStateFlow(unavailableState)
val settingsState: StateFlow = _settingsState
@Synchronized
- fun initialize(context: Context, okHttpClient: OkHttpClient) {
+ fun initialize(
+ context: Context,
+ okHttpClient: OkHttpClient,
+ ) {
if (scope != null) return
val applicationContext = context.applicationContext
val runtimeScope = CoroutineScope(SupervisorJob() + Dispatchers.IO)
val runtimePreferences = DiscordPreferences(applicationContext)
val runtimeTokenStore = DiscordTokenStore(applicationContext)
- val runtimeTransport = DiscordPlatformTransportFactory().create(
- context = applicationContext,
- okHttpClient = okHttpClient,
- tokenStore = runtimeTokenStore,
- )
+ val runtimeTransport =
+ DiscordPlatformTransportFactory().create(
+ context = applicationContext,
+ okHttpClient = okHttpClient,
+ tokenStore = runtimeTokenStore,
+ )
scope = runtimeScope
this.applicationContext = applicationContext
@@ -67,21 +72,22 @@ object DiscordPresenceRuntime {
tokenStore = runtimeTokenStore
transport = runtimeTransport
- val state = combine(
- runtimePreferences.enabled,
- runtimePreferences.linkedAccountLabel,
- runtimeTransport.connectionState,
- runtimeTransport.linkedAccountName,
- runtimeTransport.lastError,
- ) { enabled, savedAccount, connection, liveAccount, error ->
- deriveDiscordSettingsState(
- preferenceEnabled = enabled,
- transportAvailable = runtimeTransport.isAvailable,
- connectionState = connection,
- accountName = liveAccount ?: savedAccount,
- errorMessage = error,
- )
- }.stateIn(runtimeScope, SharingStarted.Eagerly, unavailableState)
+ val state =
+ combine(
+ runtimePreferences.enabled,
+ runtimePreferences.linkedAccountLabel,
+ runtimeTransport.connectionState,
+ runtimeTransport.linkedAccountName,
+ runtimeTransport.lastError,
+ ) { enabled, savedAccount, connection, liveAccount, error ->
+ deriveDiscordSettingsState(
+ preferenceEnabled = enabled,
+ transportAvailable = runtimeTransport.isAvailable,
+ connectionState = connection,
+ accountName = liveAccount ?: savedAccount,
+ errorMessage = error,
+ )
+ }.stateIn(runtimeScope, SharingStarted.Eagerly, unavailableState)
runtimeScope.launch { state.collect { _settingsState.value = it } }
runtimeScope.launch {
@@ -118,34 +124,38 @@ object DiscordPresenceRuntime {
context: Context,
transport: DiscordPresenceTransport,
) = coroutineScope {
- val playback = DiscordPlaybackSource().playback.shareIn(
- scope = this,
- started = SharingStarted.Eagerly,
- replay = 1,
- )
- val backgroundPlaybackActive = playback
- .map { snapshot -> snapshot != null }
- .delayDiscordPlaybackInactive(BACKGROUND_INACTIVE_DISCONNECT_DELAY_MS)
- .stateIn(
+ val playback =
+ DiscordPlaybackSource().playback.shareIn(
scope = this,
started = SharingStarted.Eagerly,
- initialValue = true,
+ replay = 1,
)
+ val backgroundPlaybackActive =
+ playback
+ .map { snapshot -> snapshot != null }
+ .delayDiscordPlaybackInactive(BACKGROUND_INACTIVE_DISCONNECT_DELAY_MS)
+ .stateIn(
+ scope = this,
+ started = SharingStarted.Eagerly,
+ initialValue = true,
+ )
launch {
DiscordPresenceCoordinator(
enabled = flowOf(true),
playback = playback,
transport = transport,
- mapper = DiscordPresenceMapper(
- appName = context.getString(R.string.app_name),
- playingFallback = context.getString(
- R.string.discord_presence_playing_fallback,
+ mapper =
+ DiscordPresenceMapper(
+ appName = context.getString(R.string.app_name),
+ playingFallback =
+ context.getString(
+ R.string.discord_presence_playing_fallback,
+ ),
+ creatorLabel = { creator ->
+ context.getString(R.string.discord_presence_by_creator, creator)
+ },
),
- creatorLabel = { creator ->
- context.getString(R.string.discord_presence_by_creator, creator)
- },
- ),
nowElapsedMs = SystemClock::elapsedRealtime,
).run()
}
@@ -161,8 +171,7 @@ object DiscordPresenceRuntime {
accountLinkInProgress = linking,
backgroundPlaybackActive = playbackActive,
)
- }
- .distinctUntilChanged()
+ }.distinctUntilChanged()
.collect { action ->
if (action == DiscordRuntimeAction.DISCONNECT) {
transport.disconnect()
@@ -222,10 +231,11 @@ object DiscordPresenceRuntime {
}
private suspend fun connectAccountLocked(): DiscordLinkResult {
- val currentTransport = transport
- ?: return DiscordLinkResult.Failure(
- applicationContext?.getString(R.string.discord_error_not_initialized).orEmpty(),
- )
+ val currentTransport =
+ transport
+ ?: return DiscordLinkResult.Failure(
+ applicationContext?.getString(R.string.discord_error_not_initialized).orEmpty(),
+ )
if (preferences?.enabled?.first() != true) {
return DiscordLinkResult.Failure(
applicationContext?.getString(R.string.discord_error_enable_before_connect).orEmpty(),
@@ -241,10 +251,11 @@ object DiscordPresenceRuntime {
}
suspend fun retry(): DiscordLinkResult {
- val currentTransport = transport
- ?: return DiscordLinkResult.Failure(
- applicationContext?.getString(R.string.discord_error_not_initialized).orEmpty(),
- )
+ val currentTransport =
+ transport
+ ?: return DiscordLinkResult.Failure(
+ applicationContext?.getString(R.string.discord_error_not_initialized).orEmpty(),
+ )
return retryDiscordConnection(currentTransport) { tokenStore?.load() }
}
@@ -257,6 +268,14 @@ object DiscordPresenceRuntime {
)
}
+ /** Clears this profile's presence and closes its connection before a profile switch restarts the app. */
+ suspend fun endForSwitch() {
+ val current = transport ?: return
+ transport = null
+ current.closeBeforeExit()
+ shutdown()
+ }
+
fun shutdown() {
val currentTransport = transport
currentTransport?.close()
diff --git a/app/src/github/java/io/github/aedev/flow/discord/DiscordPresenceTransport.kt b/app/src/github/java/io/github/aedev/flow/discord/DiscordPresenceTransport.kt
index 244366b0df..39a1c03e9b 100644
--- a/app/src/github/java/io/github/aedev/flow/discord/DiscordPresenceTransport.kt
+++ b/app/src/github/java/io/github/aedev/flow/discord/DiscordPresenceTransport.kt
@@ -10,11 +10,21 @@ interface DiscordPresenceTransport {
val lastError: StateFlow
fun attachActivity(activity: Activity?)
+
suspend fun link(): DiscordLinkResult
+
suspend fun connect(tokens: DiscordAuthTokens): DiscordLinkResult
+
suspend fun update(payload: DiscordPresencePayload): Boolean
+
suspend fun clear(): Boolean
+
suspend fun disconnect(): Boolean
+
suspend fun unlink(): Boolean
+
fun close()
+
+ /** [close], returning only once what it sends has left the app: the process may exit right after. */
+ suspend fun closeBeforeExit() = close()
}
diff --git a/app/src/github/java/io/github/aedev/flow/discord/DiscordTokenStore.kt b/app/src/github/java/io/github/aedev/flow/discord/DiscordTokenStore.kt
index 3326dce365..fbda81aa49 100644
--- a/app/src/github/java/io/github/aedev/flow/discord/DiscordTokenStore.kt
+++ b/app/src/github/java/io/github/aedev/flow/discord/DiscordTokenStore.kt
@@ -5,6 +5,7 @@ import android.security.keystore.KeyGenParameterSpec
import android.security.keystore.KeyProperties
import android.util.AtomicFile
import android.util.Base64
+import io.github.aedev.flow.data.profile.ProfileFiles
import org.json.JSONObject
import java.io.File
import java.security.KeyStore
@@ -13,31 +14,36 @@ import javax.crypto.KeyGenerator
import javax.crypto.SecretKey
import javax.crypto.spec.GCMParameterSpec
-class DiscordTokenStore(context: Context) {
- private val storageFile = AtomicFile(
- File(context.applicationContext.noBackupFilesDir, TOKEN_FILE_NAME),
- )
+class DiscordTokenStore(
+ context: Context,
+) {
+ private val storageFile =
+ AtomicFile(
+ File(ProfileFiles.noBackupRoot(context), TOKEN_FILE_NAME),
+ )
@Synchronized
fun save(tokens: DiscordAuthTokens) {
- val plaintext = JSONObject()
- .put("access_token", tokens.accessToken)
- .put("refresh_token", tokens.refreshToken)
- .put("expires_at", tokens.expiresAtEpochSeconds)
- .toString()
- .toByteArray(Charsets.UTF_8)
+ val plaintext =
+ JSONObject()
+ .put("access_token", tokens.accessToken)
+ .put("refresh_token", tokens.refreshToken)
+ .put("expires_at", tokens.expiresAtEpochSeconds)
+ .toString()
+ .toByteArray(Charsets.UTF_8)
- val cipher = Cipher.getInstance(TRANSFORMATION).apply {
- init(Cipher.ENCRYPT_MODE, getOrCreateKey())
- }
- val payload = JSONObject()
- .put("iv", Base64.encodeToString(cipher.iv, Base64.NO_WRAP))
- .put(
- "ciphertext",
- Base64.encodeToString(cipher.doFinal(plaintext), Base64.NO_WRAP),
- )
- .toString()
- .toByteArray(Charsets.UTF_8)
+ val cipher =
+ Cipher.getInstance(TRANSFORMATION).apply {
+ init(Cipher.ENCRYPT_MODE, getOrCreateKey())
+ }
+ val payload =
+ JSONObject()
+ .put("iv", Base64.encodeToString(cipher.iv, Base64.NO_WRAP))
+ .put(
+ "ciphertext",
+ Base64.encodeToString(cipher.doFinal(plaintext), Base64.NO_WRAP),
+ ).toString()
+ .toByteArray(Charsets.UTF_8)
val output = storageFile.startWrite()
try {
@@ -55,22 +61,25 @@ class DiscordTokenStore(context: Context) {
if (!storageFile.baseFile.exists()) return null
return runCatching {
- val payload = JSONObject(
- storageFile.openRead().bufferedReader(Charsets.UTF_8).use { it.readText() },
- )
- val cipher = Cipher.getInstance(TRANSFORMATION).apply {
- init(
- Cipher.DECRYPT_MODE,
- getOrCreateKey(),
- GCMParameterSpec(
- GCM_TAG_LENGTH_BITS,
- Base64.decode(payload.getString("iv"), Base64.NO_WRAP),
- ),
+ val payload =
+ JSONObject(
+ storageFile.openRead().bufferedReader(Charsets.UTF_8).use { it.readText() },
+ )
+ val cipher =
+ Cipher.getInstance(TRANSFORMATION).apply {
+ init(
+ Cipher.DECRYPT_MODE,
+ getOrCreateKey(),
+ GCMParameterSpec(
+ GCM_TAG_LENGTH_BITS,
+ Base64.decode(payload.getString("iv"), Base64.NO_WRAP),
+ ),
+ )
+ }
+ val plaintext =
+ cipher.doFinal(
+ Base64.decode(payload.getString("ciphertext"), Base64.NO_WRAP),
)
- }
- val plaintext = cipher.doFinal(
- Base64.decode(payload.getString("ciphertext"), Base64.NO_WRAP),
- )
val tokens = JSONObject(String(plaintext, Charsets.UTF_8))
DiscordAuthTokens(
accessToken = tokens.getString("access_token"),
@@ -98,22 +107,23 @@ class DiscordTokenStore(context: Context) {
val keyStore = KeyStore.getInstance(ANDROID_KEYSTORE).apply { load(null) }
(keyStore.getKey(KEY_ALIAS, null) as? SecretKey)?.let { return it }
- return KeyGenerator.getInstance(
- KeyProperties.KEY_ALGORITHM_AES,
- ANDROID_KEYSTORE,
- ).run {
- init(
- KeyGenParameterSpec.Builder(
- KEY_ALIAS,
- KeyProperties.PURPOSE_ENCRYPT or KeyProperties.PURPOSE_DECRYPT,
+ return KeyGenerator
+ .getInstance(
+ KeyProperties.KEY_ALGORITHM_AES,
+ ANDROID_KEYSTORE,
+ ).run {
+ init(
+ KeyGenParameterSpec
+ .Builder(
+ KEY_ALIAS,
+ KeyProperties.PURPOSE_ENCRYPT or KeyProperties.PURPOSE_DECRYPT,
+ ).setBlockModes(KeyProperties.BLOCK_MODE_GCM)
+ .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_NONE)
+ .setRandomizedEncryptionRequired(true)
+ .build(),
)
- .setBlockModes(KeyProperties.BLOCK_MODE_GCM)
- .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_NONE)
- .setRandomizedEncryptionRequired(true)
- .build(),
- )
- generateKey()
- }
+ generateKey()
+ }
}
private companion object {
diff --git a/app/src/github/java/io/github/aedev/flow/discord/KizzyDiscordPresenceTransport.kt b/app/src/github/java/io/github/aedev/flow/discord/KizzyDiscordPresenceTransport.kt
index c26a9e9895..5120534223 100644
--- a/app/src/github/java/io/github/aedev/flow/discord/KizzyDiscordPresenceTransport.kt
+++ b/app/src/github/java/io/github/aedev/flow/discord/KizzyDiscordPresenceTransport.kt
@@ -5,17 +5,13 @@ import android.content.Context
import android.content.Intent
import androidx.annotation.StringRes
import io.github.aedev.flow.R
-import java.lang.ref.WeakReference
-import java.util.Collections
-import java.util.LinkedHashMap
-import java.util.concurrent.TimeUnit
-import kotlin.random.Random
import kotlinx.coroutines.CancellationException
import kotlinx.coroutines.CompletableDeferred
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.SupervisorJob
+import kotlinx.coroutines.TimeoutCancellationException
import kotlinx.coroutines.cancel
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.MutableStateFlow
@@ -25,9 +21,9 @@ import kotlinx.coroutines.isActive
import kotlinx.coroutines.launch
import kotlinx.coroutines.sync.Mutex
import kotlinx.coroutines.sync.withLock
-import kotlinx.coroutines.TimeoutCancellationException
import kotlinx.coroutines.withContext
import kotlinx.coroutines.withTimeout
+import kotlinx.coroutines.withTimeoutOrNull
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.OkHttpClient
import okhttp3.Request
@@ -37,6 +33,11 @@ import okhttp3.WebSocket
import okhttp3.WebSocketListener
import org.json.JSONArray
import org.json.JSONObject
+import java.lang.ref.WeakReference
+import java.util.Collections
+import java.util.LinkedHashMap
+import java.util.concurrent.TimeUnit
+import kotlin.random.Random
/**
* GitHub-flavor Discord Gateway adapter inspired by Kizzy's Android RPC approach.
@@ -55,18 +56,20 @@ class KizzyDiscordPresenceTransport(
private val accountLinkMutex = Mutex()
private val reconnectBackoff = DiscordReconnectBackoff()
private val heartbeatTracker = DiscordHeartbeatTracker()
- private val imageCache = Collections.synchronizedMap(
- object : LinkedHashMap(MAX_IMAGE_CACHE_ENTRIES, 0.75f, true) {
- override fun removeEldestEntry(eldest: MutableMap.MutableEntry?): Boolean =
- size > MAX_IMAGE_CACHE_ENTRIES
- },
- )
+ private val imageCache =
+ Collections.synchronizedMap(
+ object : LinkedHashMap(MAX_IMAGE_CACHE_ENTRIES, 0.75f, true) {
+ override fun removeEldestEntry(eldest: MutableMap.MutableEntry?): Boolean = size > MAX_IMAGE_CACHE_ENTRIES
+ },
+ )
private var activityReference = WeakReference(null)
private var socket: WebSocket? = null
private var heartbeatJob: Job? = null
private var readySignal: CompletableDeferred? = null
private var currentToken: String? = null
+
@Volatile private var sequence: Int? = null
+
@Volatile private var generation = 0
private val _connectionState = MutableStateFlow(DiscordConnectionState.DISCONNECTED)
@@ -95,26 +98,29 @@ class KizzyDiscordPresenceTransport(
}
private suspend fun linkAccount(): DiscordLinkResult {
- val activity = activityReference.get()
- ?: return fail(R.string.discord_error_open_flow)
- val result = DiscordLoginBroker.begin()
- ?: return fail(R.string.discord_error_connection_in_progress)
+ val activity =
+ activityReference.get()
+ ?: return fail(R.string.discord_error_open_flow)
+ val result =
+ DiscordLoginBroker.begin()
+ ?: return fail(R.string.discord_error_connection_in_progress)
_connectionState.value = DiscordConnectionState.LINKING
_lastError.value = null
activity.startActivity(Intent(activity, DiscordLoginActivity::class.java))
- val token = try {
- withTimeout(LOGIN_TIMEOUT_MS) { result.await().getOrThrow() }
- } catch (error: TimeoutCancellationException) {
- DiscordLoginBroker.cancel()
- return fail(R.string.discord_error_login_timeout)
- } catch (error: CancellationException) {
- DiscordLoginBroker.cancel()
- throw error
- } catch (error: Throwable) {
- return fail(error.message ?: context.getString(R.string.discord_error_connection_incomplete))
- }
+ val token =
+ try {
+ withTimeout(LOGIN_TIMEOUT_MS) { result.await().getOrThrow() }
+ } catch (error: TimeoutCancellationException) {
+ DiscordLoginBroker.cancel()
+ return fail(R.string.discord_error_login_timeout)
+ } catch (error: CancellationException) {
+ DiscordLoginBroker.cancel()
+ throw error
+ } catch (error: Throwable) {
+ return fail(error.message ?: context.getString(R.string.discord_error_connection_incomplete))
+ }
return connect(
DiscordAuthTokens(
@@ -126,9 +132,10 @@ class KizzyDiscordPresenceTransport(
}
override suspend fun connect(tokens: DiscordAuthTokens): DiscordLinkResult {
- val result = connectionMutex.withLock {
- connectLocked(tokens)
- }
+ val result =
+ connectionMutex.withLock {
+ connectLocked(tokens)
+ }
if (result == DiscordLinkResult.Success) reconnectBackoff.reset()
return result
}
@@ -243,27 +250,43 @@ class KizzyDiscordPresenceTransport(
scope.cancel()
}
+ // close() only queues the cleared presence; a profile switch ends the process right after this returns.
+ override suspend fun closeBeforeExit() {
+ val open = socket
+ close()
+ withTimeoutOrNull(EXIT_FLUSH_TIMEOUT_MS) {
+ while ((open?.queueSize() ?: 0L) > 0L) delay(EXIT_FLUSH_POLL_MS)
+ }
+ }
+
private fun gatewayListener(
connectionGeneration: Int,
tokens: DiscordAuthTokens,
) = object : WebSocketListener() {
- override fun onMessage(webSocket: WebSocket, text: String) {
+ override fun onMessage(
+ webSocket: WebSocket,
+ text: String,
+ ) {
if (connectionGeneration != generation) return
val payload = runCatching { JSONObject(text) }.getOrNull() ?: return
if (payload.has("s") && !payload.isNull("s")) sequence = payload.optInt("s")
when (payload.optInt("op", -1)) {
- 0 -> if (payload.optString("t") == "READY") {
- val user = payload.optJSONObject("d")?.optJSONObject("user")
- val accountName = user?.optString("global_name")
- ?.takeIf(String::isNotBlank)
- ?: user?.optString("username")?.takeIf(String::isNotBlank)
- ?: context.getString(R.string.discord_account_fallback)
- _linkedAccountName.value = accountName
- _connectionState.value = DiscordConnectionState.CONNECTED
- _lastError.value = null
- tokenStore.save(tokens)
- readySignal?.complete(DiscordLinkResult.Success)
+ 0 -> {
+ if (payload.optString("t") == "READY") {
+ val user = payload.optJSONObject("d")?.optJSONObject("user")
+ val accountName =
+ user
+ ?.optString("global_name")
+ ?.takeIf(String::isNotBlank)
+ ?: user?.optString("username")?.takeIf(String::isNotBlank)
+ ?: context.getString(R.string.discord_account_fallback)
+ _linkedAccountName.value = accountName
+ _connectionState.value = DiscordConnectionState.CONNECTED
+ _lastError.value = null
+ tokenStore.save(tokens)
+ readySignal?.complete(DiscordLinkResult.Success)
+ }
}
1 -> {
@@ -272,24 +295,41 @@ class KizzyDiscordPresenceTransport(
failFromCallback(context.getString(R.string.discord_error_heartbeat_failed))
}
}
- 7 -> failFromCallback(context.getString(R.string.discord_error_gateway_reconnect))
- 9 -> failFromCallback(context.getString(R.string.discord_error_session_rejected))
+
+ 7 -> {
+ failFromCallback(context.getString(R.string.discord_error_gateway_reconnect))
+ }
+
+ 9 -> {
+ failFromCallback(context.getString(R.string.discord_error_session_rejected))
+ }
+
10 -> {
val interval = payload.optJSONObject("d")?.optLong("heartbeat_interval") ?: 0L
startHeartbeat(webSocket, interval, connectionGeneration)
webSocket.send(KizzyGatewayProtocol.identify(tokens.accessToken))
}
- 11 -> heartbeatTracker.acknowledge()
+ 11 -> {
+ heartbeatTracker.acknowledge()
+ }
}
}
- override fun onFailure(webSocket: WebSocket, throwable: Throwable, response: Response?) {
+ override fun onFailure(
+ webSocket: WebSocket,
+ throwable: Throwable,
+ response: Response?,
+ ) {
if (connectionGeneration != generation) return
failFromCallback(context.getString(R.string.discord_error_gateway_failed))
}
- override fun onClosed(webSocket: WebSocket, code: Int, reason: String) {
+ override fun onClosed(
+ webSocket: WebSocket,
+ code: Int,
+ reason: String,
+ ) {
if (connectionGeneration != generation) return
heartbeatJob?.cancel()
if (_connectionState.value == DiscordConnectionState.CONNECTED) {
@@ -298,24 +338,29 @@ class KizzyDiscordPresenceTransport(
}
}
- private fun startHeartbeat(webSocket: WebSocket, intervalMs: Long, connectionGeneration: Int) {
+ private fun startHeartbeat(
+ webSocket: WebSocket,
+ intervalMs: Long,
+ connectionGeneration: Int,
+ ) {
heartbeatJob?.cancel()
if (intervalMs <= 0) return
heartbeatTracker.reset()
- heartbeatJob = scope.launch {
- delay(Random.nextLong(intervalMs.coerceAtLeast(1L)))
- while (isActive && connectionGeneration == generation) {
- if (!heartbeatTracker.markPeriodicHeartbeatSent()) {
- failFromCallback(context.getString(R.string.discord_error_heartbeat_unacknowledged))
- return@launch
- }
- if (!webSocket.send(KizzyGatewayProtocol.heartbeat(sequence))) {
- failFromCallback(context.getString(R.string.discord_error_heartbeat_failed))
- return@launch
+ heartbeatJob =
+ scope.launch {
+ delay(Random.nextLong(intervalMs.coerceAtLeast(1L)))
+ while (isActive && connectionGeneration == generation) {
+ if (!heartbeatTracker.markPeriodicHeartbeatSent()) {
+ failFromCallback(context.getString(R.string.discord_error_heartbeat_unacknowledged))
+ return@launch
+ }
+ if (!webSocket.send(KizzyGatewayProtocol.heartbeat(sequence))) {
+ failFromCallback(context.getString(R.string.discord_error_heartbeat_failed))
+ return@launch
+ }
+ delay(intervalMs)
}
- delay(intervalMs)
}
- }
}
private suspend fun ensureConnected(): Boolean {
@@ -334,21 +379,25 @@ class KizzyDiscordPresenceTransport(
return withContext(Dispatchers.IO) {
runCatching {
- val body = JSONObject()
- .put("urls", JSONArray().put(imageUrl))
- .toString()
- .toRequestBody(JSON_MEDIA_TYPE)
- val request = Request.Builder()
- .url("https://discord.com/api/v9/applications/$applicationId/external-assets")
- .header("Authorization", token)
- .post(body)
- .build()
+ val body =
+ JSONObject()
+ .put("urls", JSONArray().put(imageUrl))
+ .toString()
+ .toRequestBody(JSON_MEDIA_TYPE)
+ val request =
+ Request
+ .Builder()
+ .url("https://discord.com/api/v9/applications/$applicationId/external-assets")
+ .header("Authorization", token)
+ .post(body)
+ .build()
client.newCall(request).execute().use { response ->
if (!response.isSuccessful) return@use null
- val path = JSONArray(response.body?.string().orEmpty())
- .optJSONObject(0)
- ?.optString("external_asset_path")
- ?.takeIf(String::isNotBlank)
+ val path =
+ JSONArray(response.body?.string().orEmpty())
+ .optJSONObject(0)
+ ?.optString("external_asset_path")
+ ?.takeIf(String::isNotBlank)
path?.let { "mp:$it" }
}
}.getOrNull()?.also { imageCache[imageUrl] = it }
@@ -381,12 +430,15 @@ class KizzyDiscordPresenceTransport(
}
private companion object {
+ const val EXIT_FLUSH_TIMEOUT_MS = 1_000L
+ const val EXIT_FLUSH_POLL_MS = 20L
val JSON_MEDIA_TYPE = "application/json; charset=utf-8".toMediaType()
val LOGIN_TIMEOUT_MS = TimeUnit.MINUTES.toMillis(5)
val CONNECTION_TIMEOUT_MS = TimeUnit.SECONDS.toMillis(20)
const val MAX_IMAGE_CACHE_ENTRIES = 64
}
- private fun fail(@StringRes messageRes: Int): DiscordLinkResult.Failure =
- fail(context.getString(messageRes))
+ private fun fail(
+ @StringRes messageRes: Int,
+ ): DiscordLinkResult.Failure = fail(context.getString(messageRes))
}
diff --git a/app/src/main/generated/baselineProfiles/baseline-prof.txt b/app/src/main/generated/baselineProfiles/baseline-prof.txt
index d9233e1158..5ed285495e 100644
--- a/app/src/main/generated/baselineProfiles/baseline-prof.txt
+++ b/app/src/main/generated/baselineProfiles/baseline-prof.txt
@@ -1,55 +1,81 @@
-Landroidx/activity/Cancellable;
+PLandroidx/activity/ActivityFlags;->()V
+PLandroidx/activity/ActivityFlags;->()V
+Landroidx/activity/BackEventCompat$$ExternalSyntheticApiModelOutline0;
+SPLandroidx/activity/BackEventCompat$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/graphics/Insets;)I
+SPLandroidx/activity/BackEventCompat$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/view/Window;Z)V
+SPLandroidx/activity/BackEventCompat$$ExternalSyntheticApiModelOutline0;->m$2(Landroid/graphics/Insets;)I
+SPLandroidx/activity/BackEventCompat$$ExternalSyntheticApiModelOutline0;->m$3(Landroid/graphics/Insets;)I
+SPLandroidx/activity/BackEventCompat$$ExternalSyntheticApiModelOutline0;->m(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)Landroid/media/session/MediaSession;
+PLandroidx/activity/BackEventCompat$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap;
+SPLandroidx/activity/BackEventCompat$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/Insets;)I
+SPLandroidx/activity/BackEventCompat$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/WindowManager$LayoutParams;I)V
+PLandroidx/activity/BackEventCompat$$ExternalSyntheticApiModelOutline0;->m(Landroidx/activity/ComponentDialog;)Landroid/window/OnBackInvokedDispatcher;
+SPLandroidx/activity/BackEventCompat$$ExternalSyntheticApiModelOutline0;->m(Ljava/lang/Object;)Landroid/window/OnBackInvokedCallback;
Landroidx/activity/ComponentActivity;
-SPLandroidx/activity/ComponentActivity;->$r8$lambda$4IRRzyoWeWaykEOcgWGjbNoGAkw(Landroidx/activity/OnBackPressedDispatcher;Landroidx/activity/ComponentActivity;Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V
-SPLandroidx/activity/ComponentActivity;->$r8$lambda$KUbBm7ckfqTc9QC-gukC86fguu4(Landroidx/activity/ComponentActivity;Landroid/content/Context;)V
-SPLandroidx/activity/ComponentActivity;->$r8$lambda$h6vvr6zUWA2U1fE-0KsKpOgpr28(Landroidx/activity/ComponentActivity;Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V
-SPLandroidx/activity/ComponentActivity;->$r8$lambda$ibk6u1HK7J3AWKL_Wn934v2UVI8(Landroidx/activity/ComponentActivity;Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V
+SPLandroidx/activity/ComponentActivity;->$r8$lambda$wJ5MHcSJed_CjC7r4OWD0UxyJsQ(Landroidx/activity/ComponentActivity;)Lkotlin/Unit;
SPLandroidx/activity/ComponentActivity;->()V
SPLandroidx/activity/ComponentActivity;->()V
+SPLandroidx/activity/ComponentActivity;->_init_$lambda$1(Landroidx/activity/ComponentActivity;Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V
SPLandroidx/activity/ComponentActivity;->_init_$lambda$2(Landroidx/activity/ComponentActivity;Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V
-SPLandroidx/activity/ComponentActivity;->_init_$lambda$3(Landroidx/activity/ComponentActivity;Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V
-SPLandroidx/activity/ComponentActivity;->_init_$lambda$5(Landroidx/activity/ComponentActivity;Landroid/content/Context;)V
-SPLandroidx/activity/ComponentActivity;->access$addObserverForBackInvoker(Landroidx/activity/ComponentActivity;Landroidx/activity/OnBackPressedDispatcher;)V
+SPLandroidx/activity/ComponentActivity;->_init_$lambda$4(Landroidx/activity/ComponentActivity;Landroid/content/Context;)V
SPLandroidx/activity/ComponentActivity;->access$ensureViewModelStore(Landroidx/activity/ComponentActivity;)V
-SPLandroidx/activity/ComponentActivity;->addObserverForBackInvoker$lambda$7(Landroidx/activity/OnBackPressedDispatcher;Landroidx/activity/ComponentActivity;Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V
+SPLandroidx/activity/ComponentActivity;->addObserverForBackInvoker$lambda$0(Landroidx/activity/OnBackPressedDispatcher;Landroidx/activity/ComponentActivity;Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V
SPLandroidx/activity/ComponentActivity;->addObserverForBackInvoker(Landroidx/activity/OnBackPressedDispatcher;)V
SPLandroidx/activity/ComponentActivity;->addOnContextAvailableListener(Landroidx/activity/contextaware/OnContextAvailableListener;)V
SPLandroidx/activity/ComponentActivity;->createFullyDrawnExecutor()Landroidx/activity/ComponentActivity$ReportFullyDrawnExecutor;
+SPLandroidx/activity/ComponentActivity;->defaultViewModelProviderFactory_delegate$lambda$0(Landroidx/activity/ComponentActivity;)Landroidx/lifecycle/SavedStateViewModelFactory;
SPLandroidx/activity/ComponentActivity;->ensureViewModelStore()V
+SPLandroidx/activity/ComponentActivity;->fullyDrawnReporter_delegate$lambda$0$0(Landroidx/activity/ComponentActivity;)Lkotlin/Unit;
+SPLandroidx/activity/ComponentActivity;->fullyDrawnReporter_delegate$lambda$0(Landroidx/activity/ComponentActivity;)Landroidx/activity/FullyDrawnReporter;
SPLandroidx/activity/ComponentActivity;->getActivityResultRegistry()Landroidx/activity/result/ActivityResultRegistry;
SPLandroidx/activity/ComponentActivity;->getDefaultViewModelCreationExtras()Landroidx/lifecycle/viewmodel/CreationExtras;
SPLandroidx/activity/ComponentActivity;->getDefaultViewModelProviderFactory()Landroidx/lifecycle/ViewModelProvider$Factory;
+SPLandroidx/activity/ComponentActivity;->getFullyDrawnReporter()Landroidx/activity/FullyDrawnReporter;
SPLandroidx/activity/ComponentActivity;->getLifecycle()Landroidx/lifecycle/Lifecycle;
+SPLandroidx/activity/ComponentActivity;->getNavigationEventDispatcher()Landroidx/navigationevent/NavigationEventDispatcher;
SPLandroidx/activity/ComponentActivity;->getOnBackPressedDispatcher()Landroidx/activity/OnBackPressedDispatcher;
SPLandroidx/activity/ComponentActivity;->getSavedStateRegistry()Landroidx/savedstate/SavedStateRegistry;
SPLandroidx/activity/ComponentActivity;->getViewModelStore()Landroidx/lifecycle/ViewModelStore;
SPLandroidx/activity/ComponentActivity;->initializeViewTreeOwners()V
+SPLandroidx/activity/ComponentActivity;->onBackPressedDispatcher_delegate$lambda$0(Landroidx/activity/ComponentActivity;)Landroidx/activity/OnBackPressedDispatcher;
SPLandroidx/activity/ComponentActivity;->onCreate(Landroid/os/Bundle;)V
-SPLandroidx/activity/ComponentActivity;->onUserLeaveHint()V
+SPLandroidx/activity/ComponentActivity;->reportFullyDrawn()V
SPLandroidx/activity/ComponentActivity;->setContentView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
Landroidx/activity/ComponentActivity$$ExternalSyntheticLambda0;
SPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda0;->(Landroidx/activity/ComponentActivity;)V
-Landroidx/activity/ComponentActivity$$ExternalSyntheticLambda1;
-SPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda1;->(Landroidx/activity/ComponentActivity;)V
-SPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda1;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V
+Landroidx/activity/ComponentActivity$$ExternalSyntheticLambda10;
+SPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda10;->(Landroidx/activity/ComponentActivity;)V
+SPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda10;->invoke()Ljava/lang/Object;
+Landroidx/activity/ComponentActivity$$ExternalSyntheticLambda11;
+SPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda11;->(Landroidx/activity/ComponentActivity;)V
+SPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda11;->invoke()Ljava/lang/Object;
+Landroidx/activity/ComponentActivity$$ExternalSyntheticLambda12;
+SPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda12;->(Landroidx/activity/ComponentActivity;)V
Landroidx/activity/ComponentActivity$$ExternalSyntheticLambda2;
-SPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda2;->(Landroidx/activity/ComponentActivity;)V
+SPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda2;->(Landroidx/activity/OnBackPressedDispatcher;Landroidx/activity/ComponentActivity;)V
SPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda2;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V
Landroidx/activity/ComponentActivity$$ExternalSyntheticLambda3;
SPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda3;->(Landroidx/activity/ComponentActivity;)V
+SPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda3;->invoke()Ljava/lang/Object;
Landroidx/activity/ComponentActivity$$ExternalSyntheticLambda4;
SPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda4;->(Landroidx/activity/ComponentActivity;)V
-SPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda4;->onContextAvailable(Landroid/content/Context;)V
+SPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda4;->invoke()Ljava/lang/Object;
Landroidx/activity/ComponentActivity$$ExternalSyntheticLambda5;
-SPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda5;->(Landroidx/activity/OnBackPressedDispatcher;Landroidx/activity/ComponentActivity;)V
-SPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda5;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V
+SPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda5;->(Landroidx/activity/ComponentActivity;)V
+Landroidx/activity/ComponentActivity$$ExternalSyntheticLambda6;
+SPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda6;->(Landroidx/activity/ComponentActivity;)V
+SPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda6;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V
+Landroidx/activity/ComponentActivity$$ExternalSyntheticLambda7;
+SPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda7;->(Landroidx/activity/ComponentActivity;)V
+SPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda7;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V
+Landroidx/activity/ComponentActivity$$ExternalSyntheticLambda8;
+SPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda8;->(Landroidx/activity/ComponentActivity;)V
+Landroidx/activity/ComponentActivity$$ExternalSyntheticLambda9;
+SPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda9;->(Landroidx/activity/ComponentActivity;)V
+SPLandroidx/activity/ComponentActivity$$ExternalSyntheticLambda9;->onContextAvailable(Landroid/content/Context;)V
Landroidx/activity/ComponentActivity$4;
SPLandroidx/activity/ComponentActivity$4;->(Landroidx/activity/ComponentActivity;)V
SPLandroidx/activity/ComponentActivity$4;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V
-Landroidx/activity/ComponentActivity$Api33Impl;
-SPLandroidx/activity/ComponentActivity$Api33Impl;->()V
-SPLandroidx/activity/ComponentActivity$Api33Impl;->()V
-SPLandroidx/activity/ComponentActivity$Api33Impl;->getOnBackInvokedDispatcher(Landroid/app/Activity;)Landroid/window/OnBackInvokedDispatcher;
Landroidx/activity/ComponentActivity$Companion;
SPLandroidx/activity/ComponentActivity$Companion;->()V
SPLandroidx/activity/ComponentActivity$Companion;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
@@ -57,192 +83,252 @@ Landroidx/activity/ComponentActivity$NonConfigurationInstances;
Landroidx/activity/ComponentActivity$ReportFullyDrawnExecutor;
Landroidx/activity/ComponentActivity$ReportFullyDrawnExecutorImpl;
SPLandroidx/activity/ComponentActivity$ReportFullyDrawnExecutorImpl;->(Landroidx/activity/ComponentActivity;)V
+SPLandroidx/activity/ComponentActivity$ReportFullyDrawnExecutorImpl;->execute(Ljava/lang/Runnable;)V
SPLandroidx/activity/ComponentActivity$ReportFullyDrawnExecutorImpl;->onDraw()V
PLandroidx/activity/ComponentActivity$ReportFullyDrawnExecutorImpl;->run()V
SPLandroidx/activity/ComponentActivity$ReportFullyDrawnExecutorImpl;->viewCreated(Landroid/view/View;)V
Landroidx/activity/ComponentActivity$activityResultRegistry$1;
SPLandroidx/activity/ComponentActivity$activityResultRegistry$1;->(Landroidx/activity/ComponentActivity;)V
-SPLandroidx/activity/ComponentActivity$activityResultRegistry$1;->onLaunch(ILandroidx/activity/result/contract/ActivityResultContract;Ljava/lang/Object;Landroidx/core/app/ActivityOptionsCompat;)V
-Landroidx/activity/ComponentActivity$defaultViewModelProviderFactory$2;
-SPLandroidx/activity/ComponentActivity$defaultViewModelProviderFactory$2;->(Landroidx/activity/ComponentActivity;)V
-SPLandroidx/activity/ComponentActivity$defaultViewModelProviderFactory$2;->invoke()Landroidx/lifecycle/SavedStateViewModelFactory;
-SPLandroidx/activity/ComponentActivity$defaultViewModelProviderFactory$2;->invoke()Ljava/lang/Object;
-Landroidx/activity/ComponentActivity$fullyDrawnReporter$2;
-SPLandroidx/activity/ComponentActivity$fullyDrawnReporter$2;->(Landroidx/activity/ComponentActivity;)V
-Landroidx/activity/ComponentActivity$onBackPressedDispatcher$2;
-SPLandroidx/activity/ComponentActivity$onBackPressedDispatcher$2;->(Landroidx/activity/ComponentActivity;)V
-SPLandroidx/activity/ComponentActivity$onBackPressedDispatcher$2;->invoke()Landroidx/activity/OnBackPressedDispatcher;
-SPLandroidx/activity/ComponentActivity$onBackPressedDispatcher$2;->invoke()Ljava/lang/Object;
-Landroidx/activity/ComponentActivity$onBackPressedDispatcher$2$$ExternalSyntheticLambda0;
-SPLandroidx/activity/ComponentActivity$onBackPressedDispatcher$2$$ExternalSyntheticLambda0;->(Landroidx/activity/ComponentActivity;)V
-Landroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;
-SPLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/graphics/Insets;)I
-SPLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m$1(Landroid/view/Window;Z)V
-SPLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m$2(Landroid/graphics/Insets;)I
-SPLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m$3(Landroid/graphics/Insets;)I
-SPLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)Landroid/media/session/MediaSession;
-SPLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/Canvas;Landroid/graphics/RenderNode;)V
-SPLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/Insets;)I
-SPLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;)Landroid/graphics/RecordingCanvas;
-SPLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;)V
-SPLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m(Landroid/graphics/RenderNode;IIII)Z
-SPLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/Window;Z)V
-SPLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m(Landroid/view/WindowManager$LayoutParams;I)V
-SPLandroidx/activity/ComponentDialog$$ExternalSyntheticApiModelOutline0;->m(Ljava/lang/String;)Landroid/graphics/RenderNode;
+PLandroidx/activity/ComponentDialog;->(Landroid/content/Context;I)V
+PLandroidx/activity/ComponentDialog;->(Landroid/content/Context;IILkotlin/jvm/internal/DefaultConstructorMarker;)V
+PLandroidx/activity/ComponentDialog;->getLifecycle()Landroidx/lifecycle/Lifecycle;
+PLandroidx/activity/ComponentDialog;->getLifecycleRegistry()Landroidx/lifecycle/LifecycleRegistry;
+PLandroidx/activity/ComponentDialog;->getOnBackPressedDispatcher()Landroidx/activity/OnBackPressedDispatcher;
+PLandroidx/activity/ComponentDialog;->getSavedStateRegistry()Landroidx/savedstate/SavedStateRegistry;
+PLandroidx/activity/ComponentDialog;->initializeViewTreeOwners()V
+PLandroidx/activity/ComponentDialog;->onBackPressedDispatcher_delegate$lambda$0(Landroidx/activity/ComponentDialog;)Landroidx/activity/OnBackPressedDispatcher;
+PLandroidx/activity/ComponentDialog;->onCreate(Landroid/os/Bundle;)V
+PLandroidx/activity/ComponentDialog;->onStart()V
+PLandroidx/activity/ComponentDialog;->onStop()V
+PLandroidx/activity/ComponentDialog;->setContentView(Landroid/view/View;)V
+PLandroidx/activity/ComponentDialog$$ExternalSyntheticLambda1;->(Landroidx/activity/ComponentDialog;)V
+PLandroidx/activity/ComponentDialog$$ExternalSyntheticLambda2;->(Landroidx/activity/ComponentDialog;)V
+PLandroidx/activity/ComponentDialog$$ExternalSyntheticLambda3;->(Landroidx/activity/ComponentDialog;)V
+PLandroidx/activity/ComponentDialog$$ExternalSyntheticLambda3;->invoke()Ljava/lang/Object;
Landroidx/activity/EdgeToEdge;
SPLandroidx/activity/EdgeToEdge;->()V
SPLandroidx/activity/EdgeToEdge;->enable(Landroidx/activity/ComponentActivity;Landroidx/activity/SystemBarStyle;Landroidx/activity/SystemBarStyle;)V
+SPLandroidx/activity/EdgeToEdge;->enableEdgeToEdge$lambda$1(Landroidx/activity/EdgeToEdgeImpl;Landroidx/activity/SystemBarStyle;Landroidx/activity/SystemBarStyle;Landroidx/activity/ComponentActivity;Landroid/view/View;)V
+Landroidx/activity/EdgeToEdge$$ExternalSyntheticLambda0;
+SPLandroidx/activity/EdgeToEdge$$ExternalSyntheticLambda0;->(Landroidx/activity/EdgeToEdgeImpl;Landroidx/activity/SystemBarStyle;Landroidx/activity/SystemBarStyle;Landroidx/activity/ComponentActivity;Landroid/view/View;)V
+SPLandroidx/activity/EdgeToEdge$$ExternalSyntheticLambda0;->run()V
+Landroidx/activity/EdgeToEdge$enableEdgeToEdge$1$2;
+SPLandroidx/activity/EdgeToEdge$enableEdgeToEdge$1$2;->(Ljava/lang/Runnable;Landroid/content/Context;)V
Landroidx/activity/EdgeToEdgeApi26;
SPLandroidx/activity/EdgeToEdgeApi26;->()V
Landroidx/activity/EdgeToEdgeApi28;
SPLandroidx/activity/EdgeToEdgeApi28;->()V
Landroidx/activity/EdgeToEdgeApi29;
SPLandroidx/activity/EdgeToEdgeApi29;->()V
-SPLandroidx/activity/EdgeToEdgeApi29;->setUp(Landroidx/activity/SystemBarStyle;Landroidx/activity/SystemBarStyle;Landroid/view/Window;Landroid/view/View;ZZ)V
Landroidx/activity/EdgeToEdgeApi30;
SPLandroidx/activity/EdgeToEdgeApi30;->()V
SPLandroidx/activity/EdgeToEdgeApi30;->adjustLayoutInDisplayCutoutMode(Landroid/view/Window;)V
+Landroidx/activity/EdgeToEdgeApi35;
+SPLandroidx/activity/EdgeToEdgeApi35;->()V
+SPLandroidx/activity/EdgeToEdgeApi35;->setUp(Landroidx/activity/SystemBarStyle;Landroidx/activity/SystemBarStyle;Landroid/view/Window;Landroid/view/View;ZZ)V
Landroidx/activity/EdgeToEdgeBase;
SPLandroidx/activity/EdgeToEdgeBase;->()V
Landroidx/activity/EdgeToEdgeImpl;
+Landroidx/activity/FullyDrawnReporter;
+SPLandroidx/activity/FullyDrawnReporter;->(Ljava/util/concurrent/Executor;Lkotlin/jvm/functions/Function0;)V
+SPLandroidx/activity/FullyDrawnReporter;->addOnReportDrawnListener(Lkotlin/jvm/functions/Function0;)V
+SPLandroidx/activity/FullyDrawnReporter;->addReporter()V
+SPLandroidx/activity/FullyDrawnReporter;->fullyDrawnReported()V
+SPLandroidx/activity/FullyDrawnReporter;->isFullyDrawnReported()Z
+SPLandroidx/activity/FullyDrawnReporter;->postWhenReportersAreDone()V
+SPLandroidx/activity/FullyDrawnReporter;->removeReporter()V
+SPLandroidx/activity/FullyDrawnReporter;->reportRunnable$lambda$0(Landroidx/activity/FullyDrawnReporter;)V
+Landroidx/activity/FullyDrawnReporter$$ExternalSyntheticLambda0;
+SPLandroidx/activity/FullyDrawnReporter$$ExternalSyntheticLambda0;->(Landroidx/activity/FullyDrawnReporter;)V
+SPLandroidx/activity/FullyDrawnReporter$$ExternalSyntheticLambda0;->run()V
Landroidx/activity/FullyDrawnReporterOwner;
Landroidx/activity/OnBackPressedCallback;
SPLandroidx/activity/OnBackPressedCallback;->(Z)V
-SPLandroidx/activity/OnBackPressedCallback;->addCancellable(Landroidx/activity/Cancellable;)V
-SPLandroidx/activity/OnBackPressedCallback;->isEnabled()Z
+PLandroidx/activity/OnBackPressedCallback;->addCloseable$activity(Ljava/lang/AutoCloseable;)V
+PLandroidx/activity/OnBackPressedCallback;->createNavigationEventHandler$activity(Landroidx/navigationevent/NavigationEventInfo;)Landroidx/activity/OnBackPressedCallback$OnBackPressedEventHandler;
+PLandroidx/activity/OnBackPressedCallback;->isEnabled()Z
SPLandroidx/activity/OnBackPressedCallback;->setEnabled(Z)V
-SPLandroidx/activity/OnBackPressedCallback;->setEnabledChangedCallback$activity_release(Lkotlin/jvm/functions/Function0;)V
+PLandroidx/activity/OnBackPressedCallback$OnBackPressedEventHandler;->(Landroidx/activity/OnBackPressedCallback;Landroidx/navigationevent/NavigationEventInfo;)V
+PLandroidx/activity/OnBackPressedCallback$OnBackPressedEventHandler;->setLifecycleActive(Z)V
+PLandroidx/activity/OnBackPressedCallbackInfo;->(Landroidx/activity/OnBackPressedCallback;Landroidx/lifecycle/LifecycleOwner;)V
Landroidx/activity/OnBackPressedDispatcher;
SPLandroidx/activity/OnBackPressedDispatcher;->(Ljava/lang/Runnable;)V
SPLandroidx/activity/OnBackPressedDispatcher;->(Ljava/lang/Runnable;Landroidx/core/util/Consumer;)V
-SPLandroidx/activity/OnBackPressedDispatcher;->access$updateEnabledCallbacks(Landroidx/activity/OnBackPressedDispatcher;)V
-SPLandroidx/activity/OnBackPressedDispatcher;->addCallback(Landroidx/lifecycle/LifecycleOwner;Landroidx/activity/OnBackPressedCallback;)V
-SPLandroidx/activity/OnBackPressedDispatcher;->addCancellableCallback$activity_release(Landroidx/activity/OnBackPressedCallback;)Landroidx/activity/Cancellable;
+SPLandroidx/activity/OnBackPressedDispatcher;->access$getOnHasEnabledCallbacksChanged$p(Landroidx/activity/OnBackPressedDispatcher;)Landroidx/core/util/Consumer;
+SPLandroidx/activity/OnBackPressedDispatcher;->access$setHasEnabledCallbacks$p(Landroidx/activity/OnBackPressedDispatcher;Z)V
+PLandroidx/activity/OnBackPressedDispatcher;->addCallback(Landroidx/lifecycle/LifecycleOwner;Landroidx/activity/OnBackPressedCallback;)V
+SPLandroidx/activity/OnBackPressedDispatcher;->eventInput_delegate$lambda$0(Landroidx/activity/OnBackPressedDispatcher;)Landroidx/activity/OnBackPressedDispatcher$OnBackPressedEventInput;
+SPLandroidx/activity/OnBackPressedDispatcher;->getEventDispatcher$activity()Landroidx/navigationevent/NavigationEventDispatcher;
+SPLandroidx/activity/OnBackPressedDispatcher;->getEventInput()Landroidx/activity/OnBackPressedDispatcher$OnBackPressedEventInput;
SPLandroidx/activity/OnBackPressedDispatcher;->setOnBackInvokedDispatcher(Landroid/window/OnBackInvokedDispatcher;)V
-SPLandroidx/activity/OnBackPressedDispatcher;->updateBackInvokedCallbackState(Z)V
-SPLandroidx/activity/OnBackPressedDispatcher;->updateEnabledCallbacks()V
-Landroidx/activity/OnBackPressedDispatcher$1;
-SPLandroidx/activity/OnBackPressedDispatcher$1;->(Landroidx/activity/OnBackPressedDispatcher;)V
-Landroidx/activity/OnBackPressedDispatcher$2;
-SPLandroidx/activity/OnBackPressedDispatcher$2;->(Landroidx/activity/OnBackPressedDispatcher;)V
-Landroidx/activity/OnBackPressedDispatcher$3;
-SPLandroidx/activity/OnBackPressedDispatcher$3;->(Landroidx/activity/OnBackPressedDispatcher;)V
-Landroidx/activity/OnBackPressedDispatcher$4;
-SPLandroidx/activity/OnBackPressedDispatcher$4;->(Landroidx/activity/OnBackPressedDispatcher;)V
-Landroidx/activity/OnBackPressedDispatcher$Api34Impl;
-SPLandroidx/activity/OnBackPressedDispatcher$Api34Impl;->()V
-SPLandroidx/activity/OnBackPressedDispatcher$Api34Impl;->()V
-SPLandroidx/activity/OnBackPressedDispatcher$Api34Impl;->createOnBackAnimationCallback(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;)Landroid/window/OnBackInvokedCallback;
-Landroidx/activity/OnBackPressedDispatcher$Api34Impl$createOnBackAnimationCallback$1;
-SPLandroidx/activity/OnBackPressedDispatcher$Api34Impl$createOnBackAnimationCallback$1;->(Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;)V
-Landroidx/activity/OnBackPressedDispatcher$LifecycleOnBackPressedCancellable;
-SPLandroidx/activity/OnBackPressedDispatcher$LifecycleOnBackPressedCancellable;->(Landroidx/activity/OnBackPressedDispatcher;Landroidx/lifecycle/Lifecycle;Landroidx/activity/OnBackPressedCallback;)V
-SPLandroidx/activity/OnBackPressedDispatcher$LifecycleOnBackPressedCancellable;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V
-Landroidx/activity/OnBackPressedDispatcher$OnBackPressedCancellable;
-SPLandroidx/activity/OnBackPressedDispatcher$OnBackPressedCancellable;->(Landroidx/activity/OnBackPressedDispatcher;Landroidx/activity/OnBackPressedCallback;)V
-Landroidx/activity/OnBackPressedDispatcher$addCallback$1;
-SPLandroidx/activity/OnBackPressedDispatcher$addCallback$1;->(Ljava/lang/Object;)V
-SPLandroidx/activity/OnBackPressedDispatcher$addCallback$1;->invoke()Ljava/lang/Object;
-SPLandroidx/activity/OnBackPressedDispatcher$addCallback$1;->invoke()V
-Landroidx/activity/OnBackPressedDispatcher$addCancellableCallback$1;
-SPLandroidx/activity/OnBackPressedDispatcher$addCancellableCallback$1;->(Ljava/lang/Object;)V
+Landroidx/activity/OnBackPressedDispatcher$$ExternalSyntheticLambda0;
+SPLandroidx/activity/OnBackPressedDispatcher$$ExternalSyntheticLambda0;->(Landroidx/activity/OnBackPressedDispatcher;)V
+SPLandroidx/activity/OnBackPressedDispatcher$$ExternalSyntheticLambda0;->invoke()Ljava/lang/Object;
+PLandroidx/activity/OnBackPressedDispatcher$$ExternalSyntheticLambda1;->(Landroidx/lifecycle/Lifecycle;Landroidx/activity/OnBackPressedDispatcher$addCallback$observer$1;)V
+Landroidx/activity/OnBackPressedDispatcher$OnBackPressedEventInput;
+SPLandroidx/activity/OnBackPressedDispatcher$OnBackPressedEventInput;->(Landroidx/activity/OnBackPressedDispatcher;)V
+SPLandroidx/activity/OnBackPressedDispatcher$OnBackPressedEventInput;->getDispatcher()Landroidx/navigationevent/NavigationEventDispatcher;
+SPLandroidx/activity/OnBackPressedDispatcher$OnBackPressedEventInput;->onHasEnabledHandlersChanged(Z)V
+Landroidx/activity/OnBackPressedDispatcher$OnBackPressedEventInput$$ExternalSyntheticLambda0;
+SPLandroidx/activity/OnBackPressedDispatcher$OnBackPressedEventInput$$ExternalSyntheticLambda0;->(Landroidx/activity/OnBackPressedDispatcher;)V
+PLandroidx/activity/OnBackPressedDispatcher$addCallback$observer$1;->(Landroidx/activity/OnBackPressedCallback$OnBackPressedEventHandler;Landroidx/activity/OnBackPressedDispatcher;Landroidx/lifecycle/Lifecycle;)V
+PLandroidx/activity/OnBackPressedDispatcher$addCallback$observer$1;->onStateChanged(Landroidx/lifecycle/LifecycleOwner;Landroidx/lifecycle/Lifecycle$Event;)V
+PLandroidx/activity/OnBackPressedDispatcher$addCallback$observer$1$WhenMappings;->()V
+PLandroidx/activity/OnBackPressedDispatcherKt;->addCallback$default(Landroidx/activity/OnBackPressedDispatcher;Landroidx/lifecycle/LifecycleOwner;ZLkotlin/jvm/functions/Function1;ILjava/lang/Object;)Landroidx/activity/OnBackPressedCallback;
+PLandroidx/activity/OnBackPressedDispatcherKt;->addCallback(Landroidx/activity/OnBackPressedDispatcher;Landroidx/lifecycle/LifecycleOwner;ZLkotlin/jvm/functions/Function1;)Landroidx/activity/OnBackPressedCallback;
+PLandroidx/activity/OnBackPressedDispatcherKt$addCallback$callback$1;->(ZLkotlin/jvm/functions/Function1;)V
Landroidx/activity/OnBackPressedDispatcherOwner;
Landroidx/activity/R$id;
Landroidx/activity/SystemBarStyle;
SPLandroidx/activity/SystemBarStyle;->()V
SPLandroidx/activity/SystemBarStyle;->(IIILkotlin/jvm/functions/Function1;)V
SPLandroidx/activity/SystemBarStyle;->(IIILkotlin/jvm/functions/Function1;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
-SPLandroidx/activity/SystemBarStyle;->getDetectDarkMode$activity_release()Lkotlin/jvm/functions/Function1;
-SPLandroidx/activity/SystemBarStyle;->getNightMode$activity_release()I
-SPLandroidx/activity/SystemBarStyle;->getScrimWithEnforcedContrast$activity_release(Z)I
+SPLandroidx/activity/SystemBarStyle;->getDetectDarkMode$activity()Lkotlin/jvm/functions/Function1;
+SPLandroidx/activity/SystemBarStyle;->getNightMode$activity()I
+SPLandroidx/activity/SystemBarStyle;->getScrimWithEnforcedContrast$activity(Z)I
Landroidx/activity/SystemBarStyle$Companion;
SPLandroidx/activity/SystemBarStyle$Companion;->()V
SPLandroidx/activity/SystemBarStyle$Companion;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
SPLandroidx/activity/SystemBarStyle$Companion;->auto$default(Landroidx/activity/SystemBarStyle$Companion;IILkotlin/jvm/functions/Function1;ILjava/lang/Object;)Landroidx/activity/SystemBarStyle;
+SPLandroidx/activity/SystemBarStyle$Companion;->auto$lambda$0(Landroid/content/res/Resources;)Z
SPLandroidx/activity/SystemBarStyle$Companion;->auto(IILkotlin/jvm/functions/Function1;)Landroidx/activity/SystemBarStyle;
-Landroidx/activity/SystemBarStyle$Companion$auto$1;
-SPLandroidx/activity/SystemBarStyle$Companion$auto$1;->()V
-SPLandroidx/activity/SystemBarStyle$Companion$auto$1;->()V
-SPLandroidx/activity/SystemBarStyle$Companion$auto$1;->invoke(Landroid/content/res/Resources;)Ljava/lang/Boolean;
-SPLandroidx/activity/SystemBarStyle$Companion$auto$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+Landroidx/activity/SystemBarStyle$Companion$$ExternalSyntheticLambda2;
+SPLandroidx/activity/SystemBarStyle$Companion$$ExternalSyntheticLambda2;->()V
+SPLandroidx/activity/SystemBarStyle$Companion$$ExternalSyntheticLambda2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
Landroidx/activity/ViewTreeFullyDrawnReporterOwner;
+SPLandroidx/activity/ViewTreeFullyDrawnReporterOwner;->get(Landroid/view/View;)Landroidx/activity/FullyDrawnReporterOwner;
SPLandroidx/activity/ViewTreeFullyDrawnReporterOwner;->set(Landroid/view/View;Landroidx/activity/FullyDrawnReporterOwner;)V
Landroidx/activity/ViewTreeOnBackPressedDispatcherOwner;
-SPLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner;->get(Landroid/view/View;)Landroidx/activity/OnBackPressedDispatcherOwner;
SPLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner;->set(Landroid/view/View;Landroidx/activity/OnBackPressedDispatcherOwner;)V
-Landroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$1;
-SPLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$1;->()V
-SPLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$1;->()V
-SPLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$1;->invoke(Landroid/view/View;)Landroid/view/View;
-SPLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
-Landroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$2;
-SPLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$2;->()V
-SPLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$2;->()V
-SPLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$2;->invoke(Landroid/view/View;)Landroidx/activity/OnBackPressedDispatcherOwner;
-SPLandroidx/activity/ViewTreeOnBackPressedDispatcherOwner$findViewTreeOnBackPressedDispatcherOwner$2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
Landroidx/activity/compose/ActivityResultLauncherHolder;
SPLandroidx/activity/compose/ActivityResultLauncherHolder;->()V
SPLandroidx/activity/compose/ActivityResultLauncherHolder;->()V
-SPLandroidx/activity/compose/ActivityResultLauncherHolder;->launch(Ljava/lang/Object;Landroidx/core/app/ActivityOptionsCompat;)V
SPLandroidx/activity/compose/ActivityResultLauncherHolder;->setLauncher(Landroidx/activity/result/ActivityResultLauncher;)V
SPLandroidx/activity/compose/ActivityResultLauncherHolder;->unregister()V
Landroidx/activity/compose/ActivityResultRegistryKt;
+SPLandroidx/activity/compose/ActivityResultRegistryKt;->$r8$lambda$YAfMonS2ROkWVWyfbsXWPpLpnb0(Landroidx/activity/compose/ActivityResultLauncherHolder;Landroidx/activity/result/ActivityResultRegistry;Ljava/lang/String;Landroidx/activity/result/contract/ActivityResultContract;Landroidx/compose/runtime/State;Landroidx/compose/runtime/DisposableEffectScope;)Landroidx/compose/runtime/DisposableEffectResult;
+SPLandroidx/activity/compose/ActivityResultRegistryKt;->$r8$lambda$gcIK6Em3026em-cFeXEknnn_tB4()Ljava/lang/String;
+SPLandroidx/activity/compose/ActivityResultRegistryKt;->rememberLauncherForActivityResult$lambda$0$0()Ljava/lang/String;
+SPLandroidx/activity/compose/ActivityResultRegistryKt;->rememberLauncherForActivityResult$lambda$4$0(Landroidx/activity/compose/ActivityResultLauncherHolder;Landroidx/activity/result/ActivityResultRegistry;Ljava/lang/String;Landroidx/activity/result/contract/ActivityResultContract;Landroidx/compose/runtime/State;Landroidx/compose/runtime/DisposableEffectScope;)Landroidx/compose/runtime/DisposableEffectResult;
SPLandroidx/activity/compose/ActivityResultRegistryKt;->rememberLauncherForActivityResult(Landroidx/activity/result/contract/ActivityResultContract;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)Landroidx/activity/compose/ManagedActivityResultLauncher;
-Landroidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$1$1;
-SPLandroidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$1$1;->(Landroidx/activity/compose/ActivityResultLauncherHolder;Landroidx/activity/result/ActivityResultRegistry;Ljava/lang/String;Landroidx/activity/result/contract/ActivityResultContract;Landroidx/compose/runtime/State;)V
-SPLandroidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$1$1;->invoke(Landroidx/compose/runtime/DisposableEffectScope;)Landroidx/compose/runtime/DisposableEffectResult;
-SPLandroidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$1$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
-Landroidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$1$1$$ExternalSyntheticLambda0;
-SPLandroidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$1$1$$ExternalSyntheticLambda0;->(Landroidx/compose/runtime/State;)V
-Landroidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$1$1$invoke$$inlined$onDispose$1;
-SPLandroidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$1$1$invoke$$inlined$onDispose$1;->(Landroidx/activity/compose/ActivityResultLauncherHolder;)V
-SPLandroidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$1$1$invoke$$inlined$onDispose$1;->dispose()V
-Landroidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$key$1;
-SPLandroidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$key$1;->()V
-SPLandroidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$key$1;->()V
-SPLandroidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$key$1;->invoke()Ljava/lang/Object;
-SPLandroidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$key$1;->invoke()Ljava/lang/String;
+Landroidx/activity/compose/ActivityResultRegistryKt$$ExternalSyntheticLambda0;
+SPLandroidx/activity/compose/ActivityResultRegistryKt$$ExternalSyntheticLambda0;->()V
+SPLandroidx/activity/compose/ActivityResultRegistryKt$$ExternalSyntheticLambda0;->invoke()Ljava/lang/Object;
+Landroidx/activity/compose/ActivityResultRegistryKt$$ExternalSyntheticLambda1;
+SPLandroidx/activity/compose/ActivityResultRegistryKt$$ExternalSyntheticLambda1;->(Landroidx/activity/compose/ActivityResultLauncherHolder;Landroidx/activity/result/ActivityResultRegistry;Ljava/lang/String;Landroidx/activity/result/contract/ActivityResultContract;Landroidx/compose/runtime/State;)V
+SPLandroidx/activity/compose/ActivityResultRegistryKt$$ExternalSyntheticLambda1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+Landroidx/activity/compose/ActivityResultRegistryKt$$ExternalSyntheticLambda2;
+SPLandroidx/activity/compose/ActivityResultRegistryKt$$ExternalSyntheticLambda2;->(Landroidx/compose/runtime/State;)V
+Landroidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$lambda$4$0$$inlined$onDispose$1;
+SPLandroidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$lambda$4$0$$inlined$onDispose$1;->(Landroidx/activity/compose/ActivityResultLauncherHolder;)V
+SPLandroidx/activity/compose/ActivityResultRegistryKt$rememberLauncherForActivityResult$lambda$4$0$$inlined$onDispose$1;->dispose()V
+PLandroidx/activity/compose/BackHandlerInfo;->(Ljava/lang/Object;J)V
+PLandroidx/activity/compose/BackHandlerKt;->$r8$lambda$B1Fin5hf49c20rDAvK1Q7mhIkmo(Landroidx/activity/compose/internal/BackHandlerDispatcherCompat;Landroidx/activity/compose/ComposeBackHandler;Landroidx/compose/runtime/DisposableEffectScope;)Landroidx/compose/runtime/DisposableEffectResult;
+PLandroidx/activity/compose/BackHandlerKt;->$r8$lambda$kM0UcaP40dPddLQ78INQJof-AtI(Landroidx/activity/compose/ComposeBackHandler;ZLandroidx/lifecycle/compose/LifecycleStartStopEffectScope;)Landroidx/lifecycle/compose/LifecycleStopOrDisposeEffectResult;
+PLandroidx/activity/compose/BackHandlerKt;->$r8$lambda$uh0XynCQ53WgWF1AJSb8Svr1cqM(Landroidx/activity/compose/ComposeBackHandler;Lkotlin/jvm/functions/Function0;)Lkotlin/Unit;
+PLandroidx/activity/compose/BackHandlerKt;->BackHandler$lambda$2$0(Landroidx/activity/compose/ComposeBackHandler;Lkotlin/jvm/functions/Function0;)Lkotlin/Unit;
+PLandroidx/activity/compose/BackHandlerKt;->BackHandler$lambda$3$0(Landroidx/activity/compose/ComposeBackHandler;ZLandroidx/lifecycle/compose/LifecycleStartStopEffectScope;)Landroidx/lifecycle/compose/LifecycleStopOrDisposeEffectResult;
+PLandroidx/activity/compose/BackHandlerKt;->BackHandler$lambda$4$0(Landroidx/activity/compose/internal/BackHandlerDispatcherCompat;Landroidx/activity/compose/ComposeBackHandler;Landroidx/compose/runtime/DisposableEffectScope;)Landroidx/compose/runtime/DisposableEffectResult;
+PLandroidx/activity/compose/BackHandlerKt;->BackHandler(ZLkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;II)V
+PLandroidx/activity/compose/BackHandlerKt$$ExternalSyntheticLambda0;->(Landroidx/activity/compose/ComposeBackHandler;Lkotlin/jvm/functions/Function0;)V
+PLandroidx/activity/compose/BackHandlerKt$$ExternalSyntheticLambda0;->invoke()Ljava/lang/Object;
+PLandroidx/activity/compose/BackHandlerKt$$ExternalSyntheticLambda1;->(Landroidx/activity/compose/ComposeBackHandler;Z)V
+PLandroidx/activity/compose/BackHandlerKt$$ExternalSyntheticLambda1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/activity/compose/BackHandlerKt$$ExternalSyntheticLambda2;->(Landroidx/activity/compose/internal/BackHandlerDispatcherCompat;Landroidx/activity/compose/ComposeBackHandler;)V
+PLandroidx/activity/compose/BackHandlerKt$$ExternalSyntheticLambda2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/activity/compose/BackHandlerKt$$ExternalSyntheticLambda5;->(ZLkotlin/jvm/functions/Function0;II)V
+PLandroidx/activity/compose/BackHandlerKt$BackHandler$lambda$3$0$$inlined$onStopOrDispose$1;->(Landroidx/lifecycle/compose/LifecycleStartStopEffectScope;Landroidx/activity/compose/ComposeBackHandler;)V
+PLandroidx/activity/compose/BackHandlerKt$BackHandler$lambda$3$0$$inlined$onStopOrDispose$1;->runStopOrDisposeEffect()V
+PLandroidx/activity/compose/BackHandlerKt$BackHandler$lambda$4$0$$inlined$onDispose$1;->(Landroidx/activity/compose/internal/BackHandlerDispatcherCompat;Landroidx/activity/compose/ComposeBackHandler;)V
+PLandroidx/activity/compose/BackHandlerKt$BackHandler$lambda$4$0$$inlined$onDispose$1;->dispose()V
Landroidx/activity/compose/ComponentActivityKt;
SPLandroidx/activity/compose/ComponentActivityKt;->()V
SPLandroidx/activity/compose/ComponentActivityKt;->setContent$default(Landroidx/activity/ComponentActivity;Landroidx/compose/runtime/CompositionContext;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)V
SPLandroidx/activity/compose/ComponentActivityKt;->setContent(Landroidx/activity/ComponentActivity;Landroidx/compose/runtime/CompositionContext;Lkotlin/jvm/functions/Function2;)V
SPLandroidx/activity/compose/ComponentActivityKt;->setOwners(Landroidx/activity/ComponentActivity;)V
+PLandroidx/activity/compose/ComposeBackHandler;->(Landroidx/activity/compose/BackHandlerInfo;)V
+PLandroidx/activity/compose/ComposeBackHandler;->setCurrentOnBackCompleted(Lkotlin/jvm/functions/Function0;)V
+PLandroidx/activity/compose/ComposeBackHandler$$ExternalSyntheticLambda0;->()V
+PLandroidx/activity/compose/ComposePredictiveBackHandler;->(Lkotlinx/coroutines/CoroutineScope;Landroidx/activity/compose/PredictiveBackHandlerInfo;)V
+PLandroidx/activity/compose/ComposePredictiveBackHandler;->setBackEnabled(Z)V
+PLandroidx/activity/compose/ComposePredictiveBackHandler;->setCurrentOnBack(Lkotlin/jvm/functions/Function2;)V
+PLandroidx/activity/compose/ComposePredictiveBackHandler$currentOnBack$1;->(Lkotlin/coroutines/Continuation;)V
Landroidx/activity/compose/LocalActivityResultRegistryOwner;
SPLandroidx/activity/compose/LocalActivityResultRegistryOwner;->()V
SPLandroidx/activity/compose/LocalActivityResultRegistryOwner;->()V
+SPLandroidx/activity/compose/LocalActivityResultRegistryOwner;->LocalComposition$lambda$0()Landroidx/activity/result/ActivityResultRegistryOwner;
SPLandroidx/activity/compose/LocalActivityResultRegistryOwner;->getCurrent(Landroidx/compose/runtime/Composer;I)Landroidx/activity/result/ActivityResultRegistryOwner;
-Landroidx/activity/compose/LocalActivityResultRegistryOwner$LocalComposition$1;
-SPLandroidx/activity/compose/LocalActivityResultRegistryOwner$LocalComposition$1;->()V
-SPLandroidx/activity/compose/LocalActivityResultRegistryOwner$LocalComposition$1;->()V
-SPLandroidx/activity/compose/LocalActivityResultRegistryOwner$LocalComposition$1;->invoke()Landroidx/activity/result/ActivityResultRegistryOwner;
-SPLandroidx/activity/compose/LocalActivityResultRegistryOwner$LocalComposition$1;->invoke()Ljava/lang/Object;
-Landroidx/activity/compose/LocalOnBackPressedDispatcherOwner;
-SPLandroidx/activity/compose/LocalOnBackPressedDispatcherOwner;->()V
-SPLandroidx/activity/compose/LocalOnBackPressedDispatcherOwner;->()V
-SPLandroidx/activity/compose/LocalOnBackPressedDispatcherOwner;->getCurrent(Landroidx/compose/runtime/Composer;I)Landroidx/activity/OnBackPressedDispatcherOwner;
-Landroidx/activity/compose/LocalOnBackPressedDispatcherOwner$LocalOnBackPressedDispatcherOwner$1;
-SPLandroidx/activity/compose/LocalOnBackPressedDispatcherOwner$LocalOnBackPressedDispatcherOwner$1;->()V
-SPLandroidx/activity/compose/LocalOnBackPressedDispatcherOwner$LocalOnBackPressedDispatcherOwner$1;->()V
-SPLandroidx/activity/compose/LocalOnBackPressedDispatcherOwner$LocalOnBackPressedDispatcherOwner$1;->invoke()Landroidx/activity/OnBackPressedDispatcherOwner;
-SPLandroidx/activity/compose/LocalOnBackPressedDispatcherOwner$LocalOnBackPressedDispatcherOwner$1;->invoke()Ljava/lang/Object;
+Landroidx/activity/compose/LocalActivityResultRegistryOwner$$ExternalSyntheticLambda0;
+SPLandroidx/activity/compose/LocalActivityResultRegistryOwner$$ExternalSyntheticLambda0;->()V
+SPLandroidx/activity/compose/LocalActivityResultRegistryOwner$$ExternalSyntheticLambda0;->invoke()Ljava/lang/Object;
+Landroidx/activity/compose/LocalFullyDrawnReporterOwner;
+SPLandroidx/activity/compose/LocalFullyDrawnReporterOwner;->()V
+SPLandroidx/activity/compose/LocalFullyDrawnReporterOwner;->()V
+SPLandroidx/activity/compose/LocalFullyDrawnReporterOwner;->LocalFullyDrawnReporterOwner$lambda$0()Landroidx/activity/FullyDrawnReporterOwner;
+SPLandroidx/activity/compose/LocalFullyDrawnReporterOwner;->getCurrent(Landroidx/compose/runtime/Composer;I)Landroidx/activity/FullyDrawnReporterOwner;
+Landroidx/activity/compose/LocalFullyDrawnReporterOwner$$ExternalSyntheticLambda0;
+SPLandroidx/activity/compose/LocalFullyDrawnReporterOwner$$ExternalSyntheticLambda0;->()V
+SPLandroidx/activity/compose/LocalFullyDrawnReporterOwner$$ExternalSyntheticLambda0;->invoke()Ljava/lang/Object;
Landroidx/activity/compose/ManagedActivityResultLauncher;
SPLandroidx/activity/compose/ManagedActivityResultLauncher;->()V
SPLandroidx/activity/compose/ManagedActivityResultLauncher;->(Landroidx/activity/compose/ActivityResultLauncherHolder;Landroidx/compose/runtime/State;)V
-SPLandroidx/activity/compose/ManagedActivityResultLauncher;->launch(Ljava/lang/Object;Landroidx/core/app/ActivityOptionsCompat;)V
-Landroidx/activity/compose/PredictiveBackHandlerKt;
-SPLandroidx/activity/compose/PredictiveBackHandlerKt;->PredictiveBackHandler(ZLkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V
-Landroidx/activity/compose/PredictiveBackHandlerKt$PredictiveBackHandler$1$1;
-SPLandroidx/activity/compose/PredictiveBackHandlerKt$PredictiveBackHandler$1$1;->(Landroidx/activity/compose/PredictiveBackHandlerKt$PredictiveBackHandler$backCallBack$1$1;ZLkotlin/coroutines/Continuation;)V
-SPLandroidx/activity/compose/PredictiveBackHandlerKt$PredictiveBackHandler$1$1;->create(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;
-SPLandroidx/activity/compose/PredictiveBackHandlerKt$PredictiveBackHandler$1$1;->invokeSuspend(Ljava/lang/Object;)Ljava/lang/Object;
-Landroidx/activity/compose/PredictiveBackHandlerKt$PredictiveBackHandler$2$1;
-SPLandroidx/activity/compose/PredictiveBackHandlerKt$PredictiveBackHandler$2$1;->(Landroidx/activity/OnBackPressedDispatcher;Landroidx/lifecycle/LifecycleOwner;Landroidx/activity/compose/PredictiveBackHandlerKt$PredictiveBackHandler$backCallBack$1$1;)V
-SPLandroidx/activity/compose/PredictiveBackHandlerKt$PredictiveBackHandler$2$1;->invoke(Landroidx/compose/runtime/DisposableEffectScope;)Landroidx/compose/runtime/DisposableEffectResult;
-SPLandroidx/activity/compose/PredictiveBackHandlerKt$PredictiveBackHandler$2$1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
-Landroidx/activity/compose/PredictiveBackHandlerKt$PredictiveBackHandler$2$1$invoke$$inlined$onDispose$1;
-SPLandroidx/activity/compose/PredictiveBackHandlerKt$PredictiveBackHandler$2$1$invoke$$inlined$onDispose$1;->(Landroidx/activity/compose/PredictiveBackHandlerKt$PredictiveBackHandler$backCallBack$1$1;)V
-Landroidx/activity/compose/PredictiveBackHandlerKt$PredictiveBackHandler$backCallBack$1$1;
-SPLandroidx/activity/compose/PredictiveBackHandlerKt$PredictiveBackHandler$backCallBack$1$1;->(ZLkotlinx/coroutines/CoroutineScope;Landroidx/compose/runtime/State;)V
+PLandroidx/activity/compose/PredictiveBackHandlerInfo;->(Ljava/lang/Object;J)V
+PLandroidx/activity/compose/PredictiveBackHandlerInfo;->equals(Ljava/lang/Object;)Z
+PLandroidx/activity/compose/PredictiveBackHandlerKt;->$r8$lambda$-I2Xi7-mOChmMAZ9qZZEwheaxs4(Landroidx/activity/compose/ComposePredictiveBackHandler;Lkotlin/jvm/functions/Function2;)Lkotlin/Unit;
+PLandroidx/activity/compose/PredictiveBackHandlerKt;->$r8$lambda$D8a2kH5mKpDy4Fdrtpqcav0aLMg(Landroidx/activity/compose/ComposePredictiveBackHandler;ZLandroidx/lifecycle/compose/LifecycleStartStopEffectScope;)Landroidx/lifecycle/compose/LifecycleStopOrDisposeEffectResult;
+PLandroidx/activity/compose/PredictiveBackHandlerKt;->$r8$lambda$Qyg5QBqA91q-6Cfl0DPwFa5-Xpg(Landroidx/activity/compose/internal/BackHandlerDispatcherCompat;Landroidx/activity/compose/ComposePredictiveBackHandler;Landroidx/compose/runtime/DisposableEffectScope;)Landroidx/compose/runtime/DisposableEffectResult;
+PLandroidx/activity/compose/PredictiveBackHandlerKt;->PredictiveBackHandler$lambda$2$0(Landroidx/activity/compose/ComposePredictiveBackHandler;Lkotlin/jvm/functions/Function2;)Lkotlin/Unit;
+PLandroidx/activity/compose/PredictiveBackHandlerKt;->PredictiveBackHandler$lambda$3$0(Landroidx/activity/compose/ComposePredictiveBackHandler;ZLandroidx/lifecycle/compose/LifecycleStartStopEffectScope;)Landroidx/lifecycle/compose/LifecycleStopOrDisposeEffectResult;
+PLandroidx/activity/compose/PredictiveBackHandlerKt;->PredictiveBackHandler$lambda$4$0(Landroidx/activity/compose/internal/BackHandlerDispatcherCompat;Landroidx/activity/compose/ComposePredictiveBackHandler;Landroidx/compose/runtime/DisposableEffectScope;)Landroidx/compose/runtime/DisposableEffectResult;
+PLandroidx/activity/compose/PredictiveBackHandlerKt;->PredictiveBackHandler(ZLkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;II)V
+PLandroidx/activity/compose/PredictiveBackHandlerKt$$ExternalSyntheticLambda0;->(Landroidx/activity/compose/ComposePredictiveBackHandler;Lkotlin/jvm/functions/Function2;)V
+PLandroidx/activity/compose/PredictiveBackHandlerKt$$ExternalSyntheticLambda0;->invoke()Ljava/lang/Object;
+PLandroidx/activity/compose/PredictiveBackHandlerKt$$ExternalSyntheticLambda1;->(Landroidx/activity/compose/ComposePredictiveBackHandler;Z)V
+PLandroidx/activity/compose/PredictiveBackHandlerKt$$ExternalSyntheticLambda1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/activity/compose/PredictiveBackHandlerKt$$ExternalSyntheticLambda2;->(Landroidx/activity/compose/internal/BackHandlerDispatcherCompat;Landroidx/activity/compose/ComposePredictiveBackHandler;)V
+PLandroidx/activity/compose/PredictiveBackHandlerKt$$ExternalSyntheticLambda2;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/activity/compose/PredictiveBackHandlerKt$$ExternalSyntheticLambda5;->(ZLkotlin/jvm/functions/Function2;II)V
+PLandroidx/activity/compose/PredictiveBackHandlerKt$PredictiveBackHandler$lambda$3$0$$inlined$onStopOrDispose$1;->(Landroidx/lifecycle/compose/LifecycleStartStopEffectScope;Landroidx/activity/compose/ComposePredictiveBackHandler;)V
+PLandroidx/activity/compose/PredictiveBackHandlerKt$PredictiveBackHandler$lambda$3$0$$inlined$onStopOrDispose$1;->runStopOrDisposeEffect()V
+PLandroidx/activity/compose/PredictiveBackHandlerKt$PredictiveBackHandler$lambda$4$0$$inlined$onDispose$1;->(Landroidx/activity/compose/internal/BackHandlerDispatcherCompat;Landroidx/activity/compose/ComposePredictiveBackHandler;)V
+PLandroidx/activity/compose/PredictiveBackHandlerKt$PredictiveBackHandler$lambda$4$0$$inlined$onDispose$1;->dispose()V
+Landroidx/activity/compose/ReportDrawnComposition;
+SPLandroidx/activity/compose/ReportDrawnComposition;->(Landroidx/activity/FullyDrawnReporter;Lkotlin/jvm/functions/Function0;)V
+SPLandroidx/activity/compose/ReportDrawnComposition;->invoke()Ljava/lang/Object;
+SPLandroidx/activity/compose/ReportDrawnComposition;->invoke()V
+SPLandroidx/activity/compose/ReportDrawnComposition;->observeReporter$lambda$0(Lkotlin/jvm/internal/Ref$BooleanRef;Lkotlin/jvm/functions/Function0;)Lkotlin/Unit;
+SPLandroidx/activity/compose/ReportDrawnComposition;->observeReporter(Lkotlin/jvm/functions/Function0;)V
+SPLandroidx/activity/compose/ReportDrawnComposition;->removeReporter()V
+Landroidx/activity/compose/ReportDrawnComposition$$ExternalSyntheticLambda0;
+SPLandroidx/activity/compose/ReportDrawnComposition$$ExternalSyntheticLambda0;->()V
+Landroidx/activity/compose/ReportDrawnComposition$$ExternalSyntheticLambda1;
+SPLandroidx/activity/compose/ReportDrawnComposition$$ExternalSyntheticLambda1;->(Lkotlin/jvm/internal/Ref$BooleanRef;Lkotlin/jvm/functions/Function0;)V
+SPLandroidx/activity/compose/ReportDrawnComposition$$ExternalSyntheticLambda1;->invoke()Ljava/lang/Object;
+Landroidx/activity/compose/ReportDrawnComposition$checkReporter$1;
+SPLandroidx/activity/compose/ReportDrawnComposition$checkReporter$1;->(Ljava/lang/Object;)V
+Landroidx/activity/compose/ReportDrawnKt;
+SPLandroidx/activity/compose/ReportDrawnKt;->$r8$lambda$NS-qDQDsxdIf4sa0UaGdo4nx3oM(Landroidx/activity/FullyDrawnReporter;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/DisposableEffectScope;)Landroidx/compose/runtime/DisposableEffectResult;
+SPLandroidx/activity/compose/ReportDrawnKt;->ReportDrawnWhen$lambda$1$0(Landroidx/activity/FullyDrawnReporter;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/DisposableEffectScope;)Landroidx/compose/runtime/DisposableEffectResult;
+SPLandroidx/activity/compose/ReportDrawnKt;->ReportDrawnWhen(Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;I)V
+Landroidx/activity/compose/ReportDrawnKt$$ExternalSyntheticLambda1;
+SPLandroidx/activity/compose/ReportDrawnKt$$ExternalSyntheticLambda1;->(Landroidx/activity/FullyDrawnReporter;Lkotlin/jvm/functions/Function0;)V
+SPLandroidx/activity/compose/ReportDrawnKt$$ExternalSyntheticLambda1;->invoke(Ljava/lang/Object;)Ljava/lang/Object;
+PLandroidx/activity/compose/ReportDrawnKt$ReportDrawnWhen$lambda$1$0$$inlined$onDispose$1;->()V
+PLandroidx/activity/compose/ReportDrawnKt$ReportDrawnWhen$lambda$1$0$$inlined$onDispose$1;->dispose()V
+Landroidx/activity/compose/ReportDrawnKt$ReportDrawnWhen$lambda$1$0$$inlined$onDispose$2;
+SPLandroidx/activity/compose/ReportDrawnKt$ReportDrawnWhen$lambda$1$0$$inlined$onDispose$2;->(Landroidx/activity/compose/ReportDrawnComposition;)V
+SPLandroidx/activity/compose/ReportDrawnKt$ReportDrawnWhen$lambda$1$0$$inlined$onDispose$2;->dispose()V
+PLandroidx/activity/compose/internal/BackHandlerCompat;->()V
+PLandroidx/activity/compose/internal/BackHandlerCompat;->(Landroidx/navigationevent/NavigationEventInfo;)V
+PLandroidx/activity/compose/internal/BackHandlerCompat;->getNavigationEventHandler()Landroidx/navigationevent/NavigationEventHandler;
+PLandroidx/activity/compose/internal/BackHandlerCompat;->isBackEnabled()Z
+PLandroidx/activity/compose/internal/BackHandlerCompat;->setBackEnabled(Z)V
+PLandroidx/activity/compose/internal/BackHandlerCompat$navigationEventHandler$1;->(Landroidx/activity/compose/internal/BackHandlerCompat;Landroidx/navigationevent/NavigationEventInfo;)V
+PLandroidx/activity/compose/internal/BackHandlerCompat$onBackPressedCallback$1;->(Landroidx/activity/compose/internal/BackHandlerCompat;)V
+PLandroidx/activity/compose/internal/BackHandlerDispatcherCompat;->()V
+PLandroidx/activity/compose/internal/BackHandlerDispatcherCompat;->(Landroidx/navigationevent/NavigationEventDispatcher;Landroidx/activity/OnBackPressedDispatcher;)V
+PLandroidx/activity/compose/internal/BackHandlerDispatcherCompat;->addHandler(Landroidx/activity/compose/internal/BackHandlerCompat;)V
+PLandroidx/activity/compose/internal/BackHandlerDispatcherCompat;->removeHandler(Landroidx/activity/compose/internal/BackHandlerCompat;)V
Landroidx/activity/contextaware/ContextAware;
Landroidx/activity/contextaware/ContextAwareHelper;
SPLandroidx/activity/contextaware/ContextAwareHelper;->()V
@@ -254,45 +340,36 @@ Landroidx/activity/result/ActivityResultCallback;
Landroidx/activity/result/ActivityResultCaller;
Landroidx/activity/result/ActivityResultLauncher;
SPLandroidx/activity/result/ActivityResultLauncher;->()V
-SPLandroidx/activity/result/ActivityResultLauncher;->launch(Ljava/lang/Object;)V
Landroidx/activity/result/ActivityResultRegistry;
SPLandroidx/activity/result/ActivityResultRegistry;->()V
SPLandroidx/activity/result/ActivityResultRegistry;->()V
-SPLandroidx/activity/result/ActivityResultRegistry;->access$getKeyToRc$p(Landroidx/activity/result/ActivityResultRegistry;)Ljava/util/Map;
-SPLandroidx/activity/result/ActivityResultRegistry;->access$getLaunchedKeys$p(Landroidx/activity/result/ActivityResultRegistry;)Ljava/util/List;
SPLandroidx/activity/result/ActivityResultRegistry;->bindRcKey(ILjava/lang/String;)V
+SPLandroidx/activity/result/ActivityResultRegistry;->generateRandomNumber$lambda$0()Ljava/lang/Integer;
SPLandroidx/activity/result/ActivityResultRegistry;->generateRandomNumber()I
SPLandroidx/activity/result/ActivityResultRegistry;->register(Ljava/lang/String;Landroidx/activity/result/contract/ActivityResultContract;Landroidx/activity/result/ActivityResultCallback;)Landroidx/activity/result/ActivityResultLauncher;
SPLandroidx/activity/result/ActivityResultRegistry;->registerKey(Ljava/lang/String;)V
-SPLandroidx/activity/result/ActivityResultRegistry;->unregister$activity_release(Ljava/lang/String;)V
+SPLandroidx/activity/result/ActivityResultRegistry;->unregister$activity(Ljava/lang/String;)V
+Landroidx/activity/result/ActivityResultRegistry$$ExternalSyntheticLambda1;
+SPLandroidx/activity/result/ActivityResultRegistry$$ExternalSyntheticLambda1;->()V
+SPLandroidx/activity/result/ActivityResultRegistry$$ExternalSyntheticLambda1;->invoke()Ljava/lang/Object;
Landroidx/activity/result/ActivityResultRegistry$CallbackAndContract;
SPLandroidx/activity/result/ActivityResultRegistry$CallbackAndContract;->(Landroidx/activity/result/ActivityResultCallback;Landroidx/activity/result/contract/ActivityResultContract;)V
Landroidx/activity/result/ActivityResultRegistry$Companion;
SPLandroidx/activity/result/ActivityResultRegistry$Companion;->()V
SPLandroidx/activity/result/ActivityResultRegistry$Companion;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
Landroidx/activity/result/ActivityResultRegistry$LifecycleContainer;
-Landroidx/activity/result/ActivityResultRegistry$generateRandomNumber$1;
-SPLandroidx/activity/result/ActivityResultRegistry$generateRandomNumber$1;->()V
-SPLandroidx/activity/result/ActivityResultRegistry$generateRandomNumber$1;->()V
-SPLandroidx/activity/result/ActivityResultRegistry$generateRandomNumber$1;->invoke()Ljava/lang/Integer;
-SPLandroidx/activity/result/ActivityResultRegistry$generateRandomNumber$1;->invoke()Ljava/lang/Object;
Landroidx/activity/result/ActivityResultRegistry$register$3;
SPLandroidx/activity/result/ActivityResultRegistry$register$3;->(Landroidx/activity/result/ActivityResultRegistry;Ljava/lang/String;Landroidx/activity/result/contract/ActivityResultContract;)V
-SPLandroidx/activity/result/ActivityResultRegistry$register$3;->launch(Ljava/lang/Object;Landroidx/core/app/ActivityOptionsCompat;)V
SPLandroidx/activity/result/ActivityResultRegistry$register$3;->unregister()V
Landroidx/activity/result/ActivityResultRegistryOwner;
Landroidx/activity/result/contract/ActivityResultContract;
SPLandroidx/activity/result/contract/ActivityResultContract;->()V
-SPLandroidx/activity/result/contract/ActivityResultContracts$RequestMultiplePermissions;->()V
-SPLandroidx/activity/result/contract/ActivityResultContracts$RequestMultiplePermissions$Companion;->()V
-SPLandroidx/activity/result/contract/ActivityResultContracts$RequestMultiplePermissions$Companion;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
-SPLandroidx/activity/result/contract/ActivityResultContracts$RequestMultiplePermissions$Companion;->createIntent$activity_release([Ljava/lang/String;)Landroid/content/Intent;
-Landroidx/activity/result/contract/ActivityResultContracts$RequestPermission;
-SPLandroidx/activity/result/contract/ActivityResultContracts$RequestPermission;->()V
-SPLandroidx/activity/result/contract/ActivityResultContracts$RequestPermission;->createIntent(Landroid/content/Context;Ljava/lang/Object;)Landroid/content/Intent;
-SPLandroidx/activity/result/contract/ActivityResultContracts$RequestPermission;->createIntent(Landroid/content/Context;Ljava/lang/String;)Landroid/content/Intent;
-SPLandroidx/activity/result/contract/ActivityResultContracts$RequestPermission;->getSynchronousResult(Landroid/content/Context;Ljava/lang/Object;)Landroidx/activity/result/contract/ActivityResultContract$SynchronousResult;
-SPLandroidx/activity/result/contract/ActivityResultContracts$RequestPermission;->getSynchronousResult(Landroid/content/Context;Ljava/lang/String;)Landroidx/activity/result/contract/ActivityResultContract$SynchronousResult;
+Landroidx/activity/result/contract/ActivityResultContracts$StartIntentSenderForResult;
+SPLandroidx/activity/result/contract/ActivityResultContracts$StartIntentSenderForResult;->()V
+SPLandroidx/activity/result/contract/ActivityResultContracts$StartIntentSenderForResult;->()V
+Landroidx/activity/result/contract/ActivityResultContracts$StartIntentSenderForResult$Companion;
+SPLandroidx/activity/result/contract/ActivityResultContracts$StartIntentSenderForResult$Companion;->()V
+SPLandroidx/activity/result/contract/ActivityResultContracts$StartIntentSenderForResult$Companion;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
Landroidx/arch/core/executor/ArchTaskExecutor;
SPLandroidx/arch/core/executor/ArchTaskExecutor;->()V
SPLandroidx/arch/core/executor/ArchTaskExecutor;->()V
@@ -320,54 +397,40 @@ Landroidx/arch/core/executor/DefaultTaskExecutor$Api28Impl;
SPLandroidx/arch/core/executor/DefaultTaskExecutor$Api28Impl;->createAsync(Landroid/os/Looper;)Landroid/os/Handler;
Landroidx/arch/core/executor/TaskExecutor;
SPLandroidx/arch/core/executor/TaskExecutor;->()V
-Landroidx/arch/core/internal/FastSafeIterableMap;
-SPLandroidx/arch/core/internal/FastSafeIterableMap;->()V
-SPLandroidx/arch/core/internal/FastSafeIterableMap;->ceil(Ljava/lang/Object;)Ljava/util/Map$Entry;
-SPLandroidx/arch/core/internal/FastSafeIterableMap;->contains(Ljava/lang/Object;)Z
-SPLandroidx/arch/core/internal/FastSafeIterableMap;->get(Ljava/lang/Object;)Landroidx/arch/core/internal/SafeIterableMap$Entry;
-SPLandroidx/arch/core/internal/FastSafeIterableMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-SPLandroidx/arch/core/internal/FastSafeIterableMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
Landroidx/arch/core/internal/SafeIterableMap;
SPLandroidx/arch/core/internal/SafeIterableMap;->()V
-SPLandroidx/arch/core/internal/SafeIterableMap;->descendingIterator()Ljava/util/Iterator;
-SPLandroidx/arch/core/internal/SafeIterableMap;->eldest()Ljava/util/Map$Entry;
-SPLandroidx/arch/core/internal/SafeIterableMap;->get(Ljava/lang/Object;)Landroidx/arch/core/internal/SafeIterableMap$Entry;
-SPLandroidx/arch/core/internal/SafeIterableMap;->iterator()Ljava/util/Iterator;
SPLandroidx/arch/core/internal/SafeIterableMap;->iteratorWithAdditions()Landroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;
-SPLandroidx/arch/core/internal/SafeIterableMap;->newest()Ljava/util/Map$Entry;
-SPLandroidx/arch/core/internal/SafeIterableMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Landroidx/arch/core/internal/SafeIterableMap$Entry;
-SPLandroidx/arch/core/internal/SafeIterableMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-SPLandroidx/arch/core/internal/SafeIterableMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
-SPLandroidx/arch/core/internal/SafeIterableMap;->size()I
-Landroidx/arch/core/internal/SafeIterableMap$AscendingIterator;
-SPLandroidx/arch/core/internal/SafeIterableMap$AscendingIterator;->(Landroidx/arch/core/internal/SafeIterableMap$Entry;Landroidx/arch/core/internal/SafeIterableMap$Entry;)V
-SPLandroidx/arch/core/internal/SafeIterableMap$AscendingIterator;->forward(Landroidx/arch/core/internal/SafeIterableMap$Entry;)Landroidx/arch/core/internal/SafeIterableMap$Entry;
-SPLandroidx/arch/core/internal/SafeIterableMap$DescendingIterator;->(Landroidx/arch/core/internal/SafeIterableMap$Entry;Landroidx/arch/core/internal/SafeIterableMap$Entry;)V
-SPLandroidx/arch/core/internal/SafeIterableMap$DescendingIterator;->forward(Landroidx/arch/core/internal/SafeIterableMap$Entry;)Landroidx/arch/core/internal/SafeIterableMap$Entry;
-Landroidx/arch/core/internal/SafeIterableMap$Entry;
-SPLandroidx/arch/core/internal/SafeIterableMap$Entry;->(Ljava/lang/Object;Ljava/lang/Object;)V
-SPLandroidx/arch/core/internal/SafeIterableMap$Entry;->getKey()Ljava/lang/Object;
-SPLandroidx/arch/core/internal/SafeIterableMap$Entry;->getValue()Ljava/lang/Object;
Landroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;
SPLandroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;->(Landroidx/arch/core/internal/SafeIterableMap;)V
SPLandroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;->hasNext()Z
-SPLandroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;->next()Ljava/lang/Object;
-SPLandroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;->next()Ljava/util/Map$Entry;
-SPLandroidx/arch/core/internal/SafeIterableMap$IteratorWithAdditions;->supportRemove(Landroidx/arch/core/internal/SafeIterableMap$Entry;)V
-Landroidx/arch/core/internal/SafeIterableMap$ListIterator;
-SPLandroidx/arch/core/internal/SafeIterableMap$ListIterator;->(Landroidx/arch/core/internal/SafeIterableMap$Entry;Landroidx/arch/core/internal/SafeIterableMap$Entry;)V
-SPLandroidx/arch/core/internal/SafeIterableMap$ListIterator;->hasNext()Z
-SPLandroidx/arch/core/internal/SafeIterableMap$ListIterator;->next()Ljava/lang/Object;
-SPLandroidx/arch/core/internal/SafeIterableMap$ListIterator;->next()Ljava/util/Map$Entry;
-SPLandroidx/arch/core/internal/SafeIterableMap$ListIterator;->nextNode()Landroidx/arch/core/internal/SafeIterableMap$Entry;
Landroidx/arch/core/internal/SafeIterableMap$SupportRemove;
SPLandroidx/arch/core/internal/SafeIterableMap$SupportRemove;->()V
Landroidx/arch/core/util/Function;
+Landroidx/camera/camera2/pipe/compat/Api30Compat$$ExternalSyntheticApiModelOutline2;
+SPLandroidx/camera/camera2/pipe/compat/Api30Compat$$ExternalSyntheticApiModelOutline2;->m(Landroid/content/Context;)I
+SPLandroidx/camera/camera2/pipe/compat/Api30Compat$$ExternalSyntheticApiModelOutline2;->m(Landroid/graphics/Canvas;Landroid/graphics/RenderNode;)V
+SPLandroidx/camera/camera2/pipe/compat/Api30Compat$$ExternalSyntheticApiModelOutline2;->m(Landroid/graphics/RenderNode;)Landroid/graphics/RecordingCanvas;
+SPLandroidx/camera/camera2/pipe/compat/Api30Compat$$ExternalSyntheticApiModelOutline2;->m(Landroid/graphics/RenderNode;)V
+SPLandroidx/camera/camera2/pipe/compat/Api30Compat$$ExternalSyntheticApiModelOutline2;->m(Landroid/graphics/RenderNode;IIII)Z
+SPLandroidx/camera/camera2/pipe/compat/Api30Compat$$ExternalSyntheticApiModelOutline2;->m(Ljava/lang/String;)Landroid/graphics/RenderNode;
Landroidx/camera/view/PreviewView$1$$ExternalSyntheticBackportWithForwarding0;
SPLandroidx/camera/view/PreviewView$1$$ExternalSyntheticBackportWithForwarding0;->m(Ljava/util/concurrent/atomic/AtomicReference;Ljava/lang/Object;Ljava/lang/Object;)Z
+PLandroidx/camera/viewfinder/core/impl/PixelCopyCompat$Companion$$ExternalSyntheticLambda1;->()V
Landroidx/collection/ArrayMap;
SPLandroidx/collection/ArrayMap;->()V
+SPLandroidx/collection/ArrayMap;->containsKey(Ljava/lang/Object;)Z
+SPLandroidx/collection/ArrayMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
+SPLandroidx/collection/ArrayMap;->keySet()Ljava/util/Set;
+PLandroidx/collection/ArrayMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
SPLandroidx/collection/ArrayMap;->values()Ljava/util/Collection;
+Landroidx/collection/ArrayMap$KeyIterator;
+SPLandroidx/collection/ArrayMap$KeyIterator;->(Landroidx/collection/ArrayMap;)V
+SPLandroidx/collection/ArrayMap$KeyIterator;->elementAt(I)Ljava/lang/Object;
+Landroidx/collection/ArrayMap$KeySet;
+SPLandroidx/collection/ArrayMap$KeySet;->(Landroidx/collection/ArrayMap;)V
+SPLandroidx/collection/ArrayMap$KeySet;->isEmpty()Z
+SPLandroidx/collection/ArrayMap$KeySet;->iterator()Ljava/util/Iterator;
+SPLandroidx/collection/ArrayMap$KeySet;->size()I
Landroidx/collection/ArrayMap$ValueCollection;
SPLandroidx/collection/ArrayMap$ValueCollection;->(Landroidx/collection/ArrayMap;)V
SPLandroidx/collection/ArrayMap$ValueCollection;->toArray()[Ljava/lang/Object;
@@ -376,38 +439,70 @@ SPLandroidx/collection/ArraySet;->()V
SPLandroidx/collection/ArraySet;->(I)V
SPLandroidx/collection/ArraySet;->(IILkotlin/jvm/internal/DefaultConstructorMarker;)V
SPLandroidx/collection/ArraySet;->add(Ljava/lang/Object;)Z
-SPLandroidx/collection/ArraySet;->clear()V
+PLandroidx/collection/ArraySet;->clear()V
SPLandroidx/collection/ArraySet;->getArray$collection()[Ljava/lang/Object;
SPLandroidx/collection/ArraySet;->getHashes$collection()[I
SPLandroidx/collection/ArraySet;->get_size$collection()I
SPLandroidx/collection/ArraySet;->setArray$collection([Ljava/lang/Object;)V
SPLandroidx/collection/ArraySet;->setHashes$collection([I)V
SPLandroidx/collection/ArraySet;->set_size$collection(I)V
-SPLandroidx/collection/ArraySet;->toArray()[Ljava/lang/Object;
+PLandroidx/collection/ArraySet;->toArray()[Ljava/lang/Object;
Landroidx/collection/ArraySetKt;
SPLandroidx/collection/ArraySetKt;->allocArrays(Landroidx/collection/ArraySet;I)V
SPLandroidx/collection/ArraySetKt;->indexOf(Landroidx/collection/ArraySet;Ljava/lang/Object;I)I
Landroidx/collection/FloatFloatPair;
-SPLandroidx/collection/FloatFloatPair;->constructor-impl(FF)J
+HSPLandroidx/collection/FloatFloatPair;->constructor-impl(FF)J
SPLandroidx/collection/FloatFloatPair;->constructor-impl(J)J
+Landroidx/collection/FloatList;
+SPLandroidx/collection/FloatList;->(I)V
+SPLandroidx/collection/FloatList;->(ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+SPLandroidx/collection/FloatList;->first()F
+SPLandroidx/collection/FloatList;->get(I)F
+SPLandroidx/collection/FloatList;->last()F
+Landroidx/collection/FloatSet;
+SPLandroidx/collection/FloatSet;->()V
+SPLandroidx/collection/FloatSet;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
+SPLandroidx/collection/FloatSet;->getCapacity()I
+Landroidx/collection/FloatSetKt;
+SPLandroidx/collection/FloatSetKt;->()V
+SPLandroidx/collection/FloatSetKt;->getEmptyFloatArray()[F
+Landroidx/collection/IndexBasedArrayIterator;
+SPLandroidx/collection/IndexBasedArrayIterator;->(I)V
+SPLandroidx/collection/IndexBasedArrayIterator;->hasNext()Z
+SPLandroidx/collection/IndexBasedArrayIterator;->next()Ljava/lang/Object;
Landroidx/collection/IntIntMap;
SPLandroidx/collection/IntIntMap;->()V
SPLandroidx/collection/IntIntMap;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
+PLandroidx/collection/IntIntMap;->containsKey(I)Z
SPLandroidx/collection/IntIntMap;->findKeyIndex(I)I
SPLandroidx/collection/IntIntMap;->getCapacity()I
-SPLandroidx/collection/IntIntMap;->getOrDefault(II)I
+PLandroidx/collection/IntIntMap;->getOrDefault(II)I
+Landroidx/collection/IntIntMapKt;
+SPLandroidx/collection/IntIntMapKt;->()V
+SPLandroidx/collection/IntIntMapKt;->mutableIntIntMapOf()Landroidx/collection/MutableIntIntMap;
+PLandroidx/collection/IntIntPair;->(J)V
+PLandroidx/collection/IntIntPair;->box-impl(J)Landroidx/collection/IntIntPair;
+PLandroidx/collection/IntIntPair;->constructor-impl(II)J
+PLandroidx/collection/IntIntPair;->constructor-impl(J)J
+PLandroidx/collection/IntIntPair;->getFirst-impl(J)I
+PLandroidx/collection/IntIntPair;->getSecond-impl(J)I
+PLandroidx/collection/IntIntPair;->unbox-impl()J
Landroidx/collection/IntList;
SPLandroidx/collection/IntList;->(I)V
SPLandroidx/collection/IntList;->(ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+PLandroidx/collection/IntList;->binarySearch$default(Landroidx/collection/IntList;IIIILjava/lang/Object;)I
+PLandroidx/collection/IntList;->binarySearch(III)I
+SPLandroidx/collection/IntList;->first()I
SPLandroidx/collection/IntList;->get(I)I
-SPLandroidx/collection/IntList;->getSize()I
+SPLandroidx/collection/IntList;->last()I
Landroidx/collection/IntListKt;
SPLandroidx/collection/IntListKt;->()V
+SPLandroidx/collection/IntListKt;->emptyIntList()Landroidx/collection/IntList;
SPLandroidx/collection/IntListKt;->intListOf([I)Landroidx/collection/IntList;
Landroidx/collection/IntObjectMap;
SPLandroidx/collection/IntObjectMap;->()V
SPLandroidx/collection/IntObjectMap;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
-SPLandroidx/collection/IntObjectMap;->contains(I)Z
+SPLandroidx/collection/IntObjectMap;->containsKey(I)Z
HSPLandroidx/collection/IntObjectMap;->get(I)Ljava/lang/Object;
SPLandroidx/collection/IntObjectMap;->getCapacity()I
PLandroidx/collection/IntObjectMap;->getSize()I
@@ -419,16 +514,28 @@ SPLandroidx/collection/IntObjectMapKt;->mutableIntObjectMapOf(ILjava/lang/Object
Landroidx/collection/IntSet;
SPLandroidx/collection/IntSet;->()V
SPLandroidx/collection/IntSet;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
+PLandroidx/collection/IntSet;->contains(I)Z
SPLandroidx/collection/IntSet;->getCapacity()I
+SPLandroidx/collection/IntSet;->isEmpty()Z
+SPLandroidx/collection/IntSet;->isNotEmpty()Z
Landroidx/collection/IntSetKt;
SPLandroidx/collection/IntSetKt;->()V
SPLandroidx/collection/IntSetKt;->getEmptyIntArray()[I
+SPLandroidx/collection/IntSetKt;->intSetOf(I)Landroidx/collection/IntSet;
SPLandroidx/collection/IntSetKt;->mutableIntSetOf()Landroidx/collection/MutableIntSet;
+SPLandroidx/collection/IntSetKt;->mutableIntSetOf(I)Landroidx/collection/MutableIntSet;
+Landroidx/collection/LongList;
+SPLandroidx/collection/LongList;->(I)V
+SPLandroidx/collection/LongList;->(ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+PLandroidx/collection/LongList;->get(I)J
Landroidx/collection/LongObjectMap;
SPLandroidx/collection/LongObjectMap;->()V
SPLandroidx/collection/LongObjectMap;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
-SPLandroidx/collection/LongObjectMap;->get(J)Ljava/lang/Object;
+PLandroidx/collection/LongObjectMap;->get(J)Ljava/lang/Object;
SPLandroidx/collection/LongObjectMap;->getCapacity()I
+Landroidx/collection/LongObjectMapKt;
+SPLandroidx/collection/LongObjectMapKt;->()V
+SPLandroidx/collection/LongObjectMapKt;->mutableLongObjectMapOf()Landroidx/collection/MutableLongObjectMap;
Landroidx/collection/LongSet;
SPLandroidx/collection/LongSet;->()V
SPLandroidx/collection/LongSet;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
@@ -437,37 +544,52 @@ Landroidx/collection/LongSetKt;
SPLandroidx/collection/LongSetKt;->()V
SPLandroidx/collection/LongSetKt;->getEmptyLongArray()[J
Landroidx/collection/LongSparseArray;
+PLandroidx/collection/LongSparseArray;->()V
SPLandroidx/collection/LongSparseArray;->(I)V
SPLandroidx/collection/LongSparseArray;->(IILkotlin/jvm/internal/DefaultConstructorMarker;)V
-SPLandroidx/collection/LongSparseArray;->clear()V
-SPLandroidx/collection/LongSparseArray;->containsKey(J)Z
-SPLandroidx/collection/LongSparseArray;->get(J)Ljava/lang/Object;
-SPLandroidx/collection/LongSparseArray;->indexOfKey(J)I
-SPLandroidx/collection/LongSparseArray;->isEmpty()Z
-SPLandroidx/collection/LongSparseArray;->keyAt(I)J
-SPLandroidx/collection/LongSparseArray;->put(JLjava/lang/Object;)V
-SPLandroidx/collection/LongSparseArray;->remove(J)V
-SPLandroidx/collection/LongSparseArray;->size()I
-SPLandroidx/collection/LongSparseArray;->valueAt(I)Ljava/lang/Object;
-Landroidx/collection/LongSparseArrayKt;
-SPLandroidx/collection/LongSparseArrayKt;->()V
-SPLandroidx/collection/LongSparseArrayKt;->access$getDELETED$p()Ljava/lang/Object;
+PLandroidx/collection/LongSparseArray;->clear()V
+PLandroidx/collection/LongSparseArray;->containsKey(J)Z
+PLandroidx/collection/LongSparseArray;->get(J)Ljava/lang/Object;
+PLandroidx/collection/LongSparseArray;->indexOfKey(J)I
+PLandroidx/collection/LongSparseArray;->isEmpty()Z
+PLandroidx/collection/LongSparseArray;->keyAt(I)J
+PLandroidx/collection/LongSparseArray;->put(JLjava/lang/Object;)V
+PLandroidx/collection/LongSparseArray;->remove(J)V
+PLandroidx/collection/LongSparseArray;->size()I
+PLandroidx/collection/LongSparseArray;->valueAt(I)Ljava/lang/Object;
+PLandroidx/collection/LongSparseArrayKt;->()V
+PLandroidx/collection/LongSparseArrayKt;->access$getDELETED$p()Ljava/lang/Object;
Landroidx/collection/LruCache;
SPLandroidx/collection/LruCache;->(I)V
SPLandroidx/collection/LruCache;->create(Ljava/lang/Object;)Ljava/lang/Object;
SPLandroidx/collection/LruCache;->get(Ljava/lang/Object;)Ljava/lang/Object;
-SPLandroidx/collection/LruCache;->maxSize()I
SPLandroidx/collection/LruCache;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
SPLandroidx/collection/LruCache;->safeSizeOf(Ljava/lang/Object;Ljava/lang/Object;)I
+SPLandroidx/collection/LruCache;->sizeOf(Ljava/lang/Object;Ljava/lang/Object;)I
SPLandroidx/collection/LruCache;->trimToSize(I)V
+PLandroidx/collection/MapWrapper;->(Landroidx/collection/ScatterMap;)V
+PLandroidx/collection/MapWrapper;->isEmpty()Z
+Landroidx/collection/MutableFloatList;
+SPLandroidx/collection/MutableFloatList;->(I)V
+SPLandroidx/collection/MutableFloatList;->add(F)Z
+SPLandroidx/collection/MutableFloatList;->ensureCapacity(I)V
+Landroidx/collection/MutableFloatSet;
+SPLandroidx/collection/MutableFloatSet;->(I)V
+SPLandroidx/collection/MutableFloatSet;->initializeGrowth()V
+SPLandroidx/collection/MutableFloatSet;->initializeMetadata(I)V
+SPLandroidx/collection/MutableFloatSet;->initializeStorage(I)V
Landroidx/collection/MutableIntIntMap;
SPLandroidx/collection/MutableIntIntMap;->(I)V
SPLandroidx/collection/MutableIntIntMap;->(IILkotlin/jvm/internal/DefaultConstructorMarker;)V
+PLandroidx/collection/MutableIntIntMap;->adjustStorage$collection()V
+SPLandroidx/collection/MutableIntIntMap;->clear()V
SPLandroidx/collection/MutableIntIntMap;->findFirstAvailableSlot(I)I
SPLandroidx/collection/MutableIntIntMap;->findInsertIndex(I)I
SPLandroidx/collection/MutableIntIntMap;->initializeGrowth()V
SPLandroidx/collection/MutableIntIntMap;->initializeMetadata(I)V
SPLandroidx/collection/MutableIntIntMap;->initializeStorage(I)V
+PLandroidx/collection/MutableIntIntMap;->put(II)V
+PLandroidx/collection/MutableIntIntMap;->resizeStorage$collection(I)V
SPLandroidx/collection/MutableIntIntMap;->set(II)V
Landroidx/collection/MutableIntList;
SPLandroidx/collection/MutableIntList;->(I)V
@@ -476,105 +598,151 @@ SPLandroidx/collection/MutableIntList;->add(I)Z
PLandroidx/collection/MutableIntList;->add(II)V
SPLandroidx/collection/MutableIntList;->addAll(I[I)Z
SPLandroidx/collection/MutableIntList;->ensureCapacity(I)V
-SPLandroidx/collection/MutableIntList;->plusAssign([I)V
SPLandroidx/collection/MutableIntList;->removeAt(I)I
+SPLandroidx/collection/MutableIntList;->removeRange(II)V
SPLandroidx/collection/MutableIntList;->set(II)I
PLandroidx/collection/MutableIntList;->sort()V
Landroidx/collection/MutableIntObjectMap;
SPLandroidx/collection/MutableIntObjectMap;->(I)V
SPLandroidx/collection/MutableIntObjectMap;->(IILkotlin/jvm/internal/DefaultConstructorMarker;)V
-SPLandroidx/collection/MutableIntObjectMap;->adjustStorage()V
-HSPLandroidx/collection/MutableIntObjectMap;->findAbsoluteInsertIndex(I)I
+SPLandroidx/collection/MutableIntObjectMap;->adjustStorage$collection()V
+SPLandroidx/collection/MutableIntObjectMap;->clear()V
+SPLandroidx/collection/MutableIntObjectMap;->dropDeletes$collection()V
+SPLandroidx/collection/MutableIntObjectMap;->findAbsoluteInsertIndex(I)I
SPLandroidx/collection/MutableIntObjectMap;->findFirstAvailableSlot(I)I
SPLandroidx/collection/MutableIntObjectMap;->initializeGrowth()V
SPLandroidx/collection/MutableIntObjectMap;->initializeMetadata(I)V
SPLandroidx/collection/MutableIntObjectMap;->initializeStorage(I)V
-SPLandroidx/collection/MutableIntObjectMap;->put(ILjava/lang/Object;)Ljava/lang/Object;
SPLandroidx/collection/MutableIntObjectMap;->remove(I)Ljava/lang/Object;
SPLandroidx/collection/MutableIntObjectMap;->removeValueAt(I)Ljava/lang/Object;
-SPLandroidx/collection/MutableIntObjectMap;->resizeStorage(I)V
+SPLandroidx/collection/MutableIntObjectMap;->resizeStorage$collection(I)V
SPLandroidx/collection/MutableIntObjectMap;->set(ILjava/lang/Object;)V
Landroidx/collection/MutableIntSet;
SPLandroidx/collection/MutableIntSet;->(I)V
SPLandroidx/collection/MutableIntSet;->(IILkotlin/jvm/internal/DefaultConstructorMarker;)V
+SPLandroidx/collection/MutableIntSet;->add(I)Z
+PLandroidx/collection/MutableIntSet;->adjustStorage$collection()V
+PLandroidx/collection/MutableIntSet;->clear()V
+SPLandroidx/collection/MutableIntSet;->findAbsoluteInsertIndex(I)I
+SPLandroidx/collection/MutableIntSet;->findFirstAvailableSlot(I)I
SPLandroidx/collection/MutableIntSet;->initializeGrowth()V
SPLandroidx/collection/MutableIntSet;->initializeMetadata(I)V
SPLandroidx/collection/MutableIntSet;->initializeStorage(I)V
+SPLandroidx/collection/MutableIntSet;->plusAssign(I)V
+SPLandroidx/collection/MutableIntSet;->remove(I)Z
+SPLandroidx/collection/MutableIntSet;->removeElementAt(I)V
+PLandroidx/collection/MutableIntSet;->resizeStorage$collection(I)V
+Landroidx/collection/MutableLongList;
+SPLandroidx/collection/MutableLongList;->(I)V
+SPLandroidx/collection/MutableLongList;->(IILkotlin/jvm/internal/DefaultConstructorMarker;)V
+SPLandroidx/collection/MutableLongList;->add(J)Z
+PLandroidx/collection/MutableLongList;->clear()V
+SPLandroidx/collection/MutableLongList;->ensureCapacity(I)V
Landroidx/collection/MutableLongObjectMap;
SPLandroidx/collection/MutableLongObjectMap;->(I)V
-SPLandroidx/collection/MutableLongObjectMap;->clear()V
-SPLandroidx/collection/MutableLongObjectMap;->findAbsoluteInsertIndex(J)I
-SPLandroidx/collection/MutableLongObjectMap;->findFirstAvailableSlot(I)I
+SPLandroidx/collection/MutableLongObjectMap;->(IILkotlin/jvm/internal/DefaultConstructorMarker;)V
+PLandroidx/collection/MutableLongObjectMap;->clear()V
+PLandroidx/collection/MutableLongObjectMap;->findAbsoluteInsertIndex(J)I
+PLandroidx/collection/MutableLongObjectMap;->findFirstAvailableSlot(I)I
SPLandroidx/collection/MutableLongObjectMap;->initializeGrowth()V
SPLandroidx/collection/MutableLongObjectMap;->initializeMetadata(I)V
SPLandroidx/collection/MutableLongObjectMap;->initializeStorage(I)V
-SPLandroidx/collection/MutableLongObjectMap;->set(JLjava/lang/Object;)V
+PLandroidx/collection/MutableLongObjectMap;->set(JLjava/lang/Object;)V
Landroidx/collection/MutableLongSet;
SPLandroidx/collection/MutableLongSet;->(I)V
SPLandroidx/collection/MutableLongSet;->initializeGrowth()V
SPLandroidx/collection/MutableLongSet;->initializeMetadata(I)V
SPLandroidx/collection/MutableLongSet;->initializeStorage(I)V
+Landroidx/collection/MutableObjectFloatMap;
+SPLandroidx/collection/MutableObjectFloatMap;->(I)V
+SPLandroidx/collection/MutableObjectFloatMap;->(IILkotlin/jvm/internal/DefaultConstructorMarker;)V
+SPLandroidx/collection/MutableObjectFloatMap;->findFirstAvailableSlot(I)I
+SPLandroidx/collection/MutableObjectFloatMap;->findIndex(Ljava/lang/Object;)I
+SPLandroidx/collection/MutableObjectFloatMap;->initializeGrowth()V
+SPLandroidx/collection/MutableObjectFloatMap;->initializeMetadata(I)V
+SPLandroidx/collection/MutableObjectFloatMap;->initializeStorage(I)V
+SPLandroidx/collection/MutableObjectFloatMap;->set(Ljava/lang/Object;F)V
Landroidx/collection/MutableObjectIntMap;
SPLandroidx/collection/MutableObjectIntMap;->(I)V
SPLandroidx/collection/MutableObjectIntMap;->(IILkotlin/jvm/internal/DefaultConstructorMarker;)V
-SPLandroidx/collection/MutableObjectIntMap;->adjustStorage()V
-SPLandroidx/collection/MutableObjectIntMap;->dropDeletes()V
-HSPLandroidx/collection/MutableObjectIntMap;->findFirstAvailableSlot(I)I
+SPLandroidx/collection/MutableObjectIntMap;->adjustStorage$collection()V
+SPLandroidx/collection/MutableObjectIntMap;->clear()V
+SPLandroidx/collection/MutableObjectIntMap;->findFirstAvailableSlot(I)I
SPLandroidx/collection/MutableObjectIntMap;->initializeGrowth()V
SPLandroidx/collection/MutableObjectIntMap;->initializeMetadata(I)V
HSPLandroidx/collection/MutableObjectIntMap;->initializeStorage(I)V
HSPLandroidx/collection/MutableObjectIntMap;->put(Ljava/lang/Object;II)I
SPLandroidx/collection/MutableObjectIntMap;->removeValueAt(I)V
-SPLandroidx/collection/MutableObjectIntMap;->resizeStorage(I)V
+SPLandroidx/collection/MutableObjectIntMap;->resizeStorage$collection(I)V
SPLandroidx/collection/MutableObjectIntMap;->set(Ljava/lang/Object;I)V
Landroidx/collection/MutableObjectList;
SPLandroidx/collection/MutableObjectList;->(I)V
SPLandroidx/collection/MutableObjectList;->(IILkotlin/jvm/internal/DefaultConstructorMarker;)V
-SPLandroidx/collection/MutableObjectList;->add(Ljava/lang/Object;)Z
+HSPLandroidx/collection/MutableObjectList;->add(Ljava/lang/Object;)Z
SPLandroidx/collection/MutableObjectList;->clear()V
-SPLandroidx/collection/MutableObjectList;->ensureCapacity(I)V
-Landroidx/collection/MutableObjectLongMap;
-SPLandroidx/collection/MutableObjectLongMap;->(I)V
-SPLandroidx/collection/MutableObjectLongMap;->(IILkotlin/jvm/internal/DefaultConstructorMarker;)V
-SPLandroidx/collection/MutableObjectLongMap;->initializeGrowth()V
-SPLandroidx/collection/MutableObjectLongMap;->initializeMetadata(I)V
-SPLandroidx/collection/MutableObjectLongMap;->initializeStorage(I)V
+SPLandroidx/collection/MutableObjectList;->remove(Ljava/lang/Object;)Z
+SPLandroidx/collection/MutableObjectList;->removeAt(I)Ljava/lang/Object;
+PLandroidx/collection/MutableObjectList;->removeRange(II)V
+SPLandroidx/collection/MutableObjectList;->resizeStorage(I[Ljava/lang/Object;)V
+Landroidx/collection/MutableOrderedScatterSet;
+SPLandroidx/collection/MutableOrderedScatterSet;->(I)V
+SPLandroidx/collection/MutableOrderedScatterSet;->(IILkotlin/jvm/internal/DefaultConstructorMarker;)V
+SPLandroidx/collection/MutableOrderedScatterSet;->add(Ljava/lang/Object;)Z
+SPLandroidx/collection/MutableOrderedScatterSet;->findAbsoluteInsertIndex(Ljava/lang/Object;)I
+SPLandroidx/collection/MutableOrderedScatterSet;->findFirstAvailableSlot(I)I
+SPLandroidx/collection/MutableOrderedScatterSet;->initializeGrowth()V
+SPLandroidx/collection/MutableOrderedScatterSet;->initializeMetadata(I)V
+SPLandroidx/collection/MutableOrderedScatterSet;->initializeStorage(I)V
+SPLandroidx/collection/MutableOrderedScatterSet;->plusAssign(Ljava/lang/Object;)V
+PLandroidx/collection/MutableOrderedScatterSet;->remove(Ljava/lang/Object;)Z
+PLandroidx/collection/MutableOrderedScatterSet;->removeElementAt(I)V
Landroidx/collection/MutableScatterMap;
SPLandroidx/collection/MutableScatterMap;->(I)V
SPLandroidx/collection/MutableScatterMap;->